java 多线程合并_Java多线程-线程的调度(合并)

线程的合并的含义就是将几个并行线程的线程合并为一个单线程执行,应用场景是当一个线程必须等待另一个线程执行完毕才能执行时可以使用join方法。

join为非静态方法,定义如下:

void join(): 等待该线程终止。

void join(long millis): 等待该线程终止的时间最长为 millis 毫秒。

void join(long millis, int nanos): 等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。

48304ba5e6f9fe08f3fa1abda7d326ab.png

package cn.thread;

/**

* 线程的调度(合并)

*

* @author 林计钦

* @version 1.0 2013-7-24 上午09:49:47

*/

public class ThreadJoin {

public static void main(String[] args) {

ThreadJoin join = new ThreadJoin();

Thread t1 = join.new MyThread1();

t1.start();

for (int i = 0; i < 20; i++) {

System.out.println("主线程第" + i + "次执行!");

if (i > 2)

try {

// t1线程合并到主线程中,主线程停止执行过程,转而执行t1线程,直到t1执行完毕后继续。

t1.join();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

class MyThread1 extends Thread {

public void run() {

for (int i = 0; i < 10; i++) {

System.out.println("线程1第" + i + "次执行!");

}

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

主线程第0次执行!

主线程第1次执行!

主线程第2次执行!

主线程第3次执行!

线程1第0次执行!

线程1第1次执行!

线程1第2次执行!

线程1第3次执行!

线程1第4次执行!

线程1第5次执行!

线程1第6次执行!

线程1第7次执行!

线程1第8次执行!

线程1第9次执行!

主线程第4次执行!

主线程第5次执行!

主线程第6次执行!

主线程第7次执行!

主线程第8次执行!

主线程第9次执行!

主线程第10次执行!

主线程第11次执行!

主线程第12次执行!

主线程第13次执行!

主线程第14次执行!

主线程第15次执行!

主线程第16次执行!

主线程第17次执行!

主线程第18次执行!

主线程第19次执行!

48304ba5e6f9fe08f3fa1abda7d326ab.png

本文转自http://www.cnblogs.com/linjiqin/p/3209967.html 感谢作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值