Thread-join 阶段一
2014-01-04 16:04
134 查看
1.Thread.join(),个人理解是一个线程等待另外一个线程结束后再执行
执行结果:
2.java 代码 public class CustomThread1 extends Thread { public CustomThread1() { super("CustomThread1"); } public void run() { try { String threadName = Thread.currentThread().getName(); System.out.println(threadName + " start"); for (int i = 0; i < 5; i++) { System.out.println(threadName + " loop at " + i); Thread.sleep(1000); } System.out.println(threadName + " end"); } catch (Exception e) { } } }
public class CustomThread2 extends Thread { CustomThread1 t1; public CustomThread2(CustomThread1 t1) { super("customThread2"); this.t1 = t1; } public void run() { try { String threadName = Thread.currentThread().getName(); System.out.println(threadName + " start"); t1.join(); System.out.println(threadName + " end"); } catch (Exception e) { } } }
public class JoinTestDemo { public static void main(String[] args) { try { String threadName = Thread.currentThread().getName(); System.out.println(threadName + " start."); CustomThread1 t1 = new CustomThread1(); CustomThread2 t2 = new CustomThread2(t1); t1.start(); Thread.sleep(2000); t2.start(); System.out.println(threadName + " end!"); } catch (Exception e) { } } }
执行结果:
main start. CustomThread1 start CustomThread1 loop at 0 CustomThread1 loop at 1 CustomThread1 loop at 2 main end! customThread2 start CustomThread1 loop at 3 CustomThread1 loop at 4 CustomThread1 end customThread2 end |
即:主线程启动 ---> 线程1(CustomThread1 )启动 ---> 线程1睡眠1s 及主线程睡眠2s --->同时线程2(CustomThread2)启动,执行到t1.join() 时, 要等待线程1(CustomThread1)先执行完
相关文章推荐
- C#多线程详解(一) Thread.Join()的详解
- thread的join和detach
- [Java] Thread-02 sleep-join-yield 图文 对应上一篇文章
- java Thread方法解析: sleep join wait notify notifyAll
- Thread中join()
- 解决boost::thread::join() 的阻塞
- Thread.join()用法
- C# Thread.Join()用法的理解
- Binder学习之startThreadPool,joinThreadPool
- java Thread 线程的.Join()方法
- Thread.Join()的详解
- Thread 提供的让一个线程等待另一个线程完成的方法:join()方法
- 【转】Java Thread.join()详解
- 有关Object之wait(),notify() 和notifyAll() 以及Thread之sleep(),join()和yield()
- Java的多线程:Thread类的Join()方法
- man thread_join
- Thread.join 源码
- Java Thread.join()详解
- Thread—join加塞
- Java多线程Thread.yield(),thread.join(), Thread.sleep(200),Object.wait(),Object.notify(),Object.notifyAll()的区别