2016-06-13 20 views

回答

2

下图描述了如何在ForkJoinPool平衡的作品。

垂直线是池中的线程。时间在上升。连接线程的颜色线是任务窃取。每当线程发现其本地任务队列为空时,它会从某个其他线程的本地队列中窃取一些任务,并在这两个线程之间看到一条线。

在早期阶段(在图的顶部),所有线程都忙于处理他们自己的任务。但是他们逐渐完成并开始从其他线程窃取任务,并且图表变得嘈杂。

该图旨在说明ForkJoinPool如何尽可能保持所有线程(以及CPU资源)尽快完成所有任务。