producer/consumer, communication between threads, blockingQueue
implementation