I have a consumer and a producer that adds and deletes Item objects from the queue. If I use the put() and take() methods. Is there any thread safety issues I need to still cover? This is similar to the bounded buffer problem and I was just wondering if using the blocking queue instead replaces the need for semaphores or monitors. The Item object itself would probably need synchronization (setters but getters don’t need lock), am I right? And lastly, I’m not quite sure how to test if it is thread safe since I can’t simultaneously make both threads call the take() because to order of execution is underterministic. Any ideas? Thanks.
I have a consumer and a producer that adds and deletes Item objects from
Share
It is perfectly thread-safe for what you’re doing, in fact this is what it’s designed for. The description of
BlockingQueue(which is the interface implemented byLinkedBlockingQueue) states: