我试图理解fork-join的窃取部分。 fork连接池具有自己的Deque工作线程。如果其自己的双端队列为空,则工作线程会从另一个工作者窃取。
deque是java.util.concurrent.ConcurrentLinkedDeque。拥有线程增加了双端队列的底部。窃取线程轮询了双端队列的顶部:
poll()获取并移除此双端队列表示的队列头部(换句话说,此双端队列的第一个元素),如果此双端队列为空,则返回null。
因此,没有冲突。