java多线程之join
来源:互联网 发布:淘宝0秒付款 编辑:程序博客网 时间:2024/05/21 11:20
java的Thread.Join,是把指定的线程加入到当前线程,也就是如果调用了某个线程的join方法,则后续线程必须等待该线程执行完成后才能执行。
Thread name: t2
Thread name: t1
Thread name: t3
Thread name: t1
Thread name: t2
Thread name: t3
假设有三个线程,同时执行并输出当前线程的名称,输出后让线程sleep100毫秒,由于是并发执行,我们无法控制其输出的顺序,代码如下:
public class ThreadJoinDemo {class MyThread extends Thread {private String threadName;public MyThread(String threadName) {this.threadName = threadName;}@Overridepublic void run() {System.out.println(threadName);try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {ThreadJoinDemo.MyThread t1 = new ThreadJoinDemo().new MyThread("t1");ThreadJoinDemo.MyThread t2 = new ThreadJoinDemo().new MyThread("t2");ThreadJoinDemo.MyThread t3 = new ThreadJoinDemo().new MyThread("t3");t1.start();t2.start();t3.start();}}执行结果:
Thread name: t2
Thread name: t1
Thread name: t3
如果在每个线程启动后调用join方法,则后续线程必须等待该线程执行完成后才可以执行,就可以实现顺序输出的要求了。
public class ThreadJoinDemo {class MyThread extends Thread {private String threadName;public MyThread(String threadName) {this.threadName = threadName;}@Overridepublic void run() {System.out.println("Thread name: " + threadName);try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) throws InterruptedException {ThreadJoinDemo.MyThread t1 = new ThreadJoinDemo().new MyThread("t1");ThreadJoinDemo.MyThread t2 = new ThreadJoinDemo().new MyThread("t2");ThreadJoinDemo.MyThread t3 = new ThreadJoinDemo().new MyThread("t3");t1.start();t1.join();t2.start();t2.join();t3.start();}}执行结果:
Thread name: t1
Thread name: t2
Thread name: t3
阅读全文
0 0
- java 多线程之join
- JAVA多线程之(join)
- Java 多线程之join
- java多线程之join
- java多线程之join
- java多线程之Join
- java多线程之join()方法
- Java多线程之Fork/Join
- java多线程之join()方法
- Java多线程系列-- 之 join()
- java多线程之fork/join
- Java多线程之fork/join框架详解
- Java 多线程之--- Thread.join介绍
- 深入浅出JAVA多线程之方法 JOIN
- java多线程之join与yield
- java 多线程编程之join()的用法
- Java多线程之fork/join框架详解
- java多线程之join与yield
- Codeforces Round #173 (Div. 2) E. Sausage Maximization —— Trie树 + 前缀和
- Java序列化与反序列化
- 第一章:tornado入门环境搭建
- 并发队列-无界阻塞优先级队列PriorityBlockingQueue原理探究
- 64位平台C/C++开发注意事项
- java多线程之join
- 从零开始:学flask 服务端API
- HTML DOM setInterval() 方法
- 数据库连接池配置详解
- python开头的coding设置
- Spring(02)——bean实例化
- iOS Weex与Native交互
- python基础
- 2706:麦森数 百炼oj