java基础线程-join()
来源:互联网 发布:微信恶搞软件有哪些 编辑:程序博客网 时间:2024/06/07 05:15
package common;/** * Created by shao on 2016/11/3. */public class ThreadTest implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName() + " 我已开始运行了" ); synchronized(this){ try{ for(int i=0;i<5;i++){ Thread.sleep(1000); System.out.println(Thread.currentThread().getName() + " " +i); } }catch (Throwable e) { System.out.println(e); } } System.out.println(Thread.currentThread().getName() + " 我运行结束了" ); } public static void main(String args[]) { ThreadTest tt=new ThreadTest(); try { Thread th1 = new Thread(tt); th1.setName("邵飞飞是高手"); th1.start(); Thread th2 = new Thread(tt); th2.setName("高手"); th2.start(); th1.join(); System.out.println("join运行过来"); } catch (Throwable e) { System.out.println(e); } }}
二、为什么要用join()方法
在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待子线程执行完成之后再结束,这个时候就要用到join()方法了。
即join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。简单点说:a.join();之后的代码实在a线程结束后才会运行的。
a.join([time]),如果没有时间参数,则要a线程运行完才会执行join()之后的代码;如果有时间参数时间一到就开锁,a可以没有运行完
0 0
- java基础线程-join()
- java基础:线程方法之join
- java 线程 --- join,sleep,yield 基础学习
- 线程基础:interrupt、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方法)
- iOS如何隐藏状态栏
- Android实现不一样的广告轮播
- PUTTY 使用vi命令编辑文件的时候Backspace老出问题解决方案
- Android程序Crash时的异常上报
- java中finally详解
- java基础线程-join()
- 算法-排序
- scrollView里面嵌套listview,导致滑动事件冲突解决。
- [MFC]如何添加热键
- iOS动画POP
- Lucene索引的简单使用
- servlet特殊符号过滤 类
- 【cqbzoj2500】攻占城堡
- SpringMVC接收Sting[]类型