课程
/后端开发
/Java
/深入浅出Java多线程
老师您好,我去掉了舞台中军队停止等待程咬金join的方法,运行以后发现只有主线程停止执行,其它的子线程会继续执行,是不是join方法只会阻塞主线程的执行而不会影响其它子线程的执行呢?
2015-04-05
源自:深入浅出Java多线程 2-5
正在回答
你的理解很对:当某个线程使用join()方法加入到另一个线程时,另一个线程会等待该线程执行完毕后再继续执行。
程咬金线程通过join()方法加入到舞台线程,所以只有舞台线程会等待。隋军和农民军线程的结束,是在舞台线程中加入armyTaskOfSuiDynasty.keepRunning = false; armyTaskOfRevolt.keepRunning = false;然后舞台线程又sleep(2000),让隋军和农民军线程结束最后一轮(while()循环),让程咬金线程独自执行。
窗外有个蓝蓝天 提问者
这样分清当前线程。当前军队线程正在执行,在舞台里面通过军队线程上调用join就是讲舞台阻塞,等待军队完成。
一下是Oracle的文档说明,你可以体会一下。
Joins
The join method allows one thread to wait for the completion of another. If t is a Thread object whose thread is currently executing,
t.join();
causes the current thread to pause execution until t's thread terminates.
hongchun
举报
带你一起深入浅出多线程,掌握基础,展望进阶路线
1 回答关于线程的join()方法
4 回答join方法使其他线程都停止,也包括主线程吗?
2 回答看了java中深入浅出多线程的课程,有一个关于join()函数的问题
2 回答子线程执行结束之后才能main方法的结束舞台输出吗?线程不应该是抢占资源吗?为什么没加入join,程咬金最后执行,其他线程也没调用join但是在结束前执行完毕
2 回答join方法