关于JAVA BlockingQueue的工作原理

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:30:32
我想问下
BlockingQueue的方法是类似ConcurrentLinkedQueue那样的并行,还是synchronizedCollection那样的同步。换句话说,BlockingQueue可以支持几个线程同时持有“写锁”,还是使用内部锁而每次只能有一个线程持有

BlockingQueue 实现是线程安全的。所有排队方法都可以使用内部锁或其他形式的并发控制来自动达到它们的目的。然而,大量的 Collection 操作(addAll、containsAll、retainAll 和 removeAll)没有 必要自动执行,除非在实现中特别说明。因此,举例来说,在只添加了 c 中的一些元素后,addAll(c) 有可能失败(抛出一个异常)。