来自JavaDocs:
我有两个场景,一个需要队列支持许多生产者(使用它的线程)与一个消费者,另一个是另一种方式.
我不明白使用哪种实现.有人可以解释一下这些差异是什么吗?
此外,什么是"可选的公平政策" ArrayBlockingQueue?
我认为,在大多数情况下,ArrayBlockingQueue表现会比表现更好LinkedBlockingQueue.但是,当数组中总有足够的空间时就是这种情况......如果它已经满了,那么它是否会表现得如此之好是不可预测的,因为它会阻塞试图将数据推入队列的线程. .
所以,我的问题是:是否有任何中间实施BlockingQueue?说,一个ArrayListBlockingQueue或一个BucketListBlockingQueue?类似于数组列表的东西,以便队列可以动态增加容量,同时仍然可以通过使用数组最终存储数据获得合理的好处?
我正在阅读有关条件的信息java.util.concurrent.locks.Condition.
条件因素将对象监视器方法(wait,notify和notifyAll)>分解为不同的对象,以通过将它们与使用任意的Lock实现相结合来实现每个对象具有多个等待集的效果.
有人可以解释一下吗?
这比普通同步块或方法有什么好处?