ForkJoinTask.join fork
Posted chuliang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ForkJoinTask.join fork相关的知识,希望对你有一定的参考价值。
fork是把task放到workqueue[]中,join的逻辑是先去取,取不到说明这之间的功夫,被别的线程取走了,取到了自己执行task,然后判断task是不是可以完成,如果没完成,说明要么是这个task正在执行,要么是递归成子task了,反正不管怎样。
递归的所有task,需要都被完成之后,才能算整个的task被完成,那么,如果某个线程被卡在某个task上了,回去扫描或者叫偷别的线程上的task,直到扫描不到或者被卡住的task完成(实现future接口就是干这个的)。
其实理解forkjoinpool就两点,一个递归,一个所有task都完成才算整个完成,在这之前,所有的?线程都应该在扫描没完成的task。
以上是关于ForkJoinTask.join fork的主要内容,如果未能解决你的问题,请参考以下文章