多线程中join的理解
来源:互联网 发布:mysql批量替换字符串 编辑:程序博客网 时间:2024/05/16 09:01
join方法:当在某个程序执行流中调用其他线程的join方法时,调用线程将被阻塞,知道新join进来的线程执行完成为止。
谁是调用线程?
在本例中,main线程就是调用线程。
谁是被调线程?
在本例中,线程2就是被调线程,即新join进来的线程。
public class JoinThread extends Thread {@Overridepublic void run() {for (int i = 0; i < 5; i++) {System.out.println(getName() + "\t" + i);}}//有参构造public JoinThread(String name) {super(name);}public static void main(String[] args) throws Exception {//主线程main启动时就创建一个新的线程,线程1,线程1将会和主线程(main)并发执行new JoinThread("线程1").start();for (int j = 0; j < 5; j++) {if(j == 3){//再启动新的线程,线程2,join进来JoinThread jt = new JoinThread("线程2");jt.start();//main线程调用了线程2的join,//则main线程必须等到线程2执行完成后才向下执行,//此时只有线程1和线程2并发执行jt.join();}System.out.println(Thread.currentThread().getName() + "\t" + j);}}}
执行结果:
main 0
main 1
main 2
线程1 0
线程1 1
线程1 2
线程1 3
线程2 0
线程1 4
线程2 1
线程2 2
线程2 3
线程2 4
main 3
main 4
从结果可以看出,当main线程启动时,便开启了新的线程,线程1, 此时系统中两个线程并发执行,当j=3时, 启动线程2,join进来,相当于main线程调用了线程2 的join方法,main线程被阻塞,此时只有线程1和线程2并发执行,直到线程2执行完毕后,main线程才能继续执行。
0 0
- 多线程中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()方法的理解
- cocos2dx常识
- 解决循环import的问题
- Windows驱动 DbgPrint 输出的问题 (Windows 7)
- 服务器
- apache服务器配置常见错误以及解决方法
- 多线程中join的理解
- VxWorks在S3C2410上的BSP设计
- 什么是版本控制系统(VCS)?
- 软件设计是怎样炼成的(4)——软件设计的“大道理”
- 大病保险试点6月底前覆盖全国
- 用Python抓网页的注意事项
- HDU 1245 推箱子
- 杭电2014
- ACM答题时文件读取