Discuss / 编程 / 一个疑问

一个疑问

Topic source

李其仔

#1 Created at ... [Delete] [Delete and Lock User]

“这是因为执行compute()方法的线程本身也是一个Worker线程,当对两个子任务调用fork()时,这个Worker线程就会把任务分配给另外两个Worker,但是它自己却停下来等待不干活了!”

这样的话,使用只有一个work-thread的ForkJoinPool,是不是就会造成deadlock?因为第一个worker会一直等待新增的task,而后者又没机会执行。

但是我在实际测试时,发现能正常执行,而且都在同一个线程中。

呆木愚人

#2 Created at ... [Delete] [Delete and Lock User]

join方法本身也会去执行task,


  • 1

Reply