1.fork...join
各线程并行执行,当耗时最长的线程执行完后,跳出该语句块。如果任何一个子线程无法结束,则整个fork...join将被挂起
2.fork...join_any
如果任何一个子线程完成,则程序允许执行fork...join_any块外面接下来的语句,而fok...join_any剩余的子线程将在后台继续执行
执行结果为:
3.fork...join_none
执行结果为:
可以看到,首先打印出来的是第3行和第9行。这是由于fork...join_none块后面没有任何阻塞语句,而join_none不会阻塞下一条阻塞语句之前的所有进程。由于三个线程的print中都添加了延时,所以第三行和第九行被首先打印,然后才轮到三个线程print的输出。