黑马程序员技术交流社区
标题:
java多线程中的join方法
[打印本页]
作者:
刘学明
时间:
2013-4-23 00:03
标题:
java多线程中的join方法
本帖最后由 刘学明 于 2013-4-28 22:14 编辑
学习Java多线程,一直对Join理解不是很透彻
JDK上这样写 join public final void join(long millis)throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means to wait forever. 意思是等待一段时间直到这个线程死亡,但是真正怎么运用还是不太懂
请大家帮助给一些详解 包括在各种线程中的作用
和同步 非同步什么的联系,顺便把线程的方法 wait notify sleep jonin 等方法对比说下 以便能更好理解
给点代码和注释更好 谢谢大家!
作者:
肖川
时间:
2013-4-23 00:30
join方法:等待调用join方法的线程结束,再继续执行.防止意外发生。
wait 方法会使调用该方法的线程等待,释放锁资源,让其他线程执行,
直到notify或者notifyAll唤醒该线程,唤醒当前对象锁的等待线程使用notify或notifyAll方法,也必须拥有相同的对象锁
sleep方法在指定时间内让当前正在执行的线程暂停执行,但不会释放锁资源,形成阻塞。
wite()和notify()必须在synchronized函数或synchronized代码块中进行调用
作者:
曹德君
时间:
2013-4-23 00:44
我是这样理解的:当a线程执行到了B线程的join()方法时,A就会等待,等B线程都执行完,才会执行A线程。例如main函数里面执行了b.join()那么main就会变成后台守护线程并放弃执行权,b线程开启并开始执行,等b执行完毕后,main的线程从新开启继续执行。后面的其他兄弟补上~~
作者:
黄玉昆
时间:
2013-4-28 11:44
楼主你好,请及时对回帖者回复,如果问题解决了,请及时处理帖子,将帖子分类改为“已解决”,谢谢你的支持
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2