Thread.join([timeout])

调用Thread.join将会使主调线程堵塞,直到被调用线程运行结束或超时。参数timeout是一个数值类型,表示超时时间,如果未提供该参数,那么主调线程将一直堵塞到被调线程结束。

那为什么要用join()方法?
主线程生成并起动了子线程,而子线程里要进行大量的耗时的运算,当主线程处理完其他的事务后,需要用到子线程的处理结果,这个时候就要用到join();方法了。

示例:

image

如上面截图代码所示,当join()函数调用部分被注释掉后,执行结果如下:

image

可以看到主函数执行打印并没有等到所有线程结束。

再看当方框内的代码去掉注释后,执行结果如下:

image

可以看到当所有线程结束后,主函数才开始执行。

原文地址:https://www.cnblogs.com/huligong1234/p/2950069.html