当前位置:   article > 正文

现在有三个线程T1,T2,T3,怎么保证线程按照T1,T2,T3的顺序顺序执行。_存在三个线程 thread1、thread2、thread3,如何确保他们按照 thread1、th

存在三个线程 thread1、thread2、thread3,如何确保他们按照 thread1、thread2、th

 解决思路是:使用join();来保证上一个线程执行完后,再执行现在的线程执行。

thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。

比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。

t.join();      //调用join方法,等待线程t执行完毕
t.join(1000);  //等待 t 线程,等待时间是1000毫秒。

  1. package com.zte.power.refuelsitemanagement.service;
  2. public class OrderT1T2T3 {
  3. public static void main(String[] args) {
  4. Thread t1 = new Thread(new Runnable() {
  5. @Override
  6. public void run() {
  7. try {
  8. Thread.sleep(5000);
  9. System.out.println(Thread.currentThread().getName()+"-111");
  10. } catch (InterruptedException e) {
  11. e.printStackTrace();
  12. }
  13. }
  14. });
  15. Thread t2 = new Thread(new Runnable() {
  16. @Override
  17. public void run() {
  18. try {
  19. System.out.println("我正在等待T1执行完成");
  20. t1.join();
  21. Thread.sleep(3000);
  22. System.out.println(Thread.currentThread().getName()+"-222");
  23. } catch (InterruptedException e) {
  24. e.printStackTrace();
  25. }
  26. }
  27. });
  28. Thread t3 = new Thread(new Runnable() {
  29. @Override
  30. public void run() {
  31. try {
  32. System.out.println("我正在等待T2执行完成");
  33. t2.join();
  34. Thread.sleep(1000);
  35. System.out.println(Thread.currentThread().getName()+"-333");
  36. } catch (InterruptedException e) {
  37. e.printStackTrace();
  38. }
  39. }
  40. });
  41. t1.start();
  42. t2.start();
  43. t3.start();
  44. }
  45. }

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号