Thread.join()的使用
来源:互联网 发布:Python 异常 编辑:程序博客网 时间:2024/05/23 23:41
如果一个线程A执行了B.join()语句,其含义是:当前线程A等待B线程终止之后才从B.join()返回。线程Thread除了提供join()方法之外,还提供了join(long millis)和join(longmillis,int nanos)两个具备超时特性的方法。这两个超时方法表示,如果线程thread在给定的超时时间里没有终止,那么将会从该超时方法中返回。
/** *Thread.join()的使用 */package com.lbbywyt.concurrent;import java.util.concurrent.TimeUnit;/** * @author libaobao * */public class Join { /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { Thread previous = Thread.currentThread(); for (int i = 0; i < 10; i++) { // 每个线程拥有前一个线程的引用,需要等待前一个线程终止,才能从等待中返回 Thread thread = new Thread(new JoinThread(previous), String.valueOf(i)); thread.start(); previous = thread; } System.out.println(Thread.currentThread().getName() + " terminate."); } static class JoinThread implements Runnable { private Thread thread; public JoinThread(Thread thread) { this.thread = thread; } public void run() { try { thread.join(); TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { } System.out .println(Thread.currentThread().getName() + " terminate."); } }}
上述代码创建了10个线程,编号0~9,每个线程调用前一个线程的join()方法,也就是线程0结束了,线程1才能从join()方法中返回,而线程0必须等待main线程结束之后才能执行。
阅读全文
0 0
- Thread.join()的使用
- Thread.join()的使用
- Thread.join()的使用
- Thread的join方法使用
- 使用Thread的join()方法
- Thread.join()方法的使用
- Thread.sleep 和Object.join的使用
- Thread类中的join方法的使用
- C# thread的join方法使用解析
- Thread类的join方法使用
- Thread中join方法的使用分析
- thread.join()的用法
- Thread Join()的用法
- thread join 的尝试
- Thread类的join()
- Thread的join()
- Thread的join()方法
- Thread 的join
- Make defensive copies when needed
- 19、二叉树的镜像
- Android中ViewPager常用功能4补充----viewpager图片查看器
- JAVA实现较完善的布隆过滤器
- 欧拉函数
- Thread.join()的使用
- POJ 3167 Layout(差分约束)
- Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程
- Mycat之——高可用负载均衡集群的实现(HAProxy + Keepalived + Mycat)
- 延迟消息队列实现分析与设计
- easyui-datagrid行内可编辑
- uva 836 Largest Submatrix
- Openlayers3中实现台风风圈绘制算法
- 矩阵树定理(Matrix -Tree定理)