Java多线程 --- join
来源:互联网 发布:小猪cms电商系统 编辑:程序博客网 时间:2024/06/07 09:33
join 可以安排先后顺序了.如果要先完成t1, 再运行t2, 最近运行t3,就可以这样了
t1.start();
t1.join();
t2.start();
t2.join();
t3.start()
JDK是这样说的:
Waits at most millis milliseconds for this thread to die. A timeout of 0 means to wait forever.
等待一段时间直到这个线程死亡
请问程序的输出结果是5吗?答案是:有可能。这个时候main线程和t线程是并列运行的。
怎样才能让输出结果为5!其实很简单,join() 方法提供了这种功能。join() 方法,它能够使调用该方法的线程在此之前执行完毕。
这个时候,程序输入结果始终为5。
就是说如果是t.join() = t.join(0) 0 JDK这样说的 A timeout of 0 means to wait forever 字面意思是永远等待,其实是等到t结束后。
这个是怎么实现的吗? 看JDK代码:
其实Join方法实现是通过wait。
wait()方法
在其他线程调用对象的wait方法后,导致当前线程等待。线程会释放掉它所占有的“锁标志”,从而使别的线程有机会抢占该锁。
当main线程调用t.join时候,main线程会失去线程对象t的锁,进入等待,直到该对象唤醒main线程,比如退出后。
- Java多线程 --- join
- java 多线程之join
- java多线程-join方法
- JAVA多线程之(join)
- java 多线程join
- java多线程join
- java多线程--join函数
- java多线程join()详解
- Java 多线程之join
- Java多线程join()
- java多线程之join
- Java 多线程:join
- java多线程之join
- java多线程之Join
- Java 多线程join方法
- Java多线程join()
- java多线程join方法
- java多线程join()和join(long millis)
- axis2 生成
- MySQL 备份和恢复策略二:使用mysqlhotcopy备份数据库
- 移动Windows XP的%USERPROFILE%到其它盘的方法
- ExtJS Performance - Element click events
- MongoDB Replica Set: 详解Primary down机后elect新的Primary过程
- Java多线程 --- join
- GridView绑定结果为空时显示表头
- 微软云计算组件“Huron” – 将你的数据同步至云计算数据中心(Azure)
- ffmpeg论坛
- c语言处理变参数变类型
- Tomcat时区设置方法
- 正确使用Windows Azure 中的VM Role
- poj1840——Eqs
- DM软件