我LinkedBlockingQueue在两个不同的线程之间使用.一个线程通过添加数据add,而另一个线程通过take.
我的问题是,我是否需要同步访问add和take.是LinkedBlockingQueue的插入和删除方法是线程安全的?
我有一个消费者和一个生产者,它从队列中添加和删除Item对象.如果我使用put()和take()方法.我还需要涵盖哪些线程安全问题?这类似于有界缓冲区问题,我只是想知道是否使用阻塞队列代替信号量或监视器的需要.Item对象本身可能需要同步(setter但getter不需要锁定),我是对的吗?最后,我不太确定如何测试它是否是线程安全的,因为我不能同时让两个线程调用,take()因为执行顺序是不确定的.有任何想法吗?谢谢.