时间:2021-05-20
本文实例讲述了Java中join线程操作。分享给大家供大家参考,具体如下:
一 点睛
Tread提供了让一个线程等待另外一个线程完成的方法——join()方法。当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完后为止。
join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程。当所有小问题都得到处理后,再调用主线程来进一步操作。
二 代码
public class JoinThread extends Thread{ // 提供一个有参数的构造器,用于设置该线程的名字 public JoinThread(String name) { super(name); } // 重写run()方法,定义线程执行体 public void run() { for (int i = 0; i < 100 ; i++ ) { System.out.println(getName() + " " + i); } } public static void main(String[] args)throws Exception { // 启动子线程 new JoinThread("新线程").start(); for (int i = 0; i < 100 ; i++ ) { if (i == 20) { JoinThread jt = new JoinThread("被Join的线程"); jt.start(); // main线程调用了jt线程的join()方法,main线程 // 必须等jt执行结束才会向下执行 jt.join(); } System.out.println(Thread.currentThread().getName() + " " + i); } }}三 运行结果
main 0
main 1
main 2
main 3
main 4
main 5
main 6
新线程 0
......
新线程 11
新线程 12
新线程 13
main 7
main 8
......
main 16
main 17
新线程 14
main 18
main 19
新线程 15
新线程 16
......
新线程 31
被Join的线程 0
新线程 32
被Join的线程 1
新线程 33
被Join的线程 2
新线程 34
被Join的线程 3
新线程 35
新线程 36
新线程 37
新线程 38
新线程 39
被Join的线程 4
被Join的线程 5
......
被Join的线程 13
被Join的线程 14
新线程 40
被Join的线程 15
被Join的线程 16
被Join的线程 17
新线程 41
新线程 42
被Join的线程 18
被Join的线程 19
......
被Join的线程 38
被Join的线程 39
新线程 43
新线程 44
新线程 45
被Join的线程 40
被Join的线程 41
被Join的线程 42
被Join的线程 43
新线程 46
新线程 47
新线程 48
......
新线程 60
新线程 61
被Join的线程 44
......
被Join的线程 98
被Join的线程 99
新线程 62
新线程 63
......
新线程 98
新线程 99
main 20
main 21
main 22
main 23
四 说明
1 程序开始是mian线程和新线程并发执行。
2 当i为20时,main线程开始等待“被Join的线程”执行完成,此时“被Join的线程”和“新线程”并发执行。
3 当“被Join的线程”执行完成,main线程继续运行,此时“main”和“新线程”并发执行。
更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文研究的主要是Java多线程中join方法的使用问题,以下文为具体实例。Thread的非静态方法join()让一个线程B“加入”到另外一个线程A的尾部。在A执
join()介绍join()定义在Thread.java中。join()的作用:让“主线程”等待“子线程”结束之后才能继续运行。这句话可能有点晦涩,我们还是通过
本文实例讲述了C#多线程之Thread中Thread.Join()函数用法。分享给大家供大家参考。具体分析如下:Thread.Join()在MSDN中的解释:B
本文实例讲述了Java线程的联合用法。分享给大家供大家参考,具体如下:一点睛在Java中,线程控制提供了join()方法。该方法的功能是把指定的线程加入到当前线
本文实例讲述了java线程方法join简单用法。分享给大家供大家参考,具体如下:虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,