nit: ConurrentLinkedQueue is a more suitable data structure for this type of access -- it provides a very efficient linked list, and it uses "add()" instead of "offer()". Also no blocking stuff.