zoukankan      html  css  js  c++  java
  • 【!Important】如何保证线程执行的先后顺序

    1、假设有三个线程,分别为T1、T2、T3,如果让线程T2在线程T1之后执行,在线程T3之前执行。

    使用线程的join方法,该方法的作用是“等待线程执行结束”,即join()方法后面的代码块都要等待现场执行结束后才能执行。

     1 public class Test {
     2     @SuppressWarnings("static-access")
     3     public static void main(String[] args) throws InterruptedException {
     4         Thread t1 = new Thread(new Runner());
     5         Thread t2 = new Thread(new Runner());
     6         Thread t3 = new Thread(new Runner());
     7         t1.start();
     8         t1.sleep(5000);
     9         t1.join();
    10     
    11         t2.start();
    12         t2.sleep(1000);
    13         t2.join();
    14         t3.start();
    15         t3.join();
    16     
    17     }
    18     
    19 }
    20  
    21 class Runner implements Runnable{
    22  
    23     @Override
    24     public void run() {
    25         System.out.println(Thread.currentThread().getName()+"");
    26         
    27     }
    28     
    29 }

    注:线程的优先级无法保障线程的执行次序,只不过优先级高的线程获取CPU资源的概率大一些而已。

  • 相关阅读:
    数数小木块
    猴子吃桃问题
    整除个数
    大小写互换
    车牌号
    比较字母大小
    队花的烦恼一
    字母小游戏
    字符串逆序输出
    茵茵的第一课
  • 原文地址:https://www.cnblogs.com/dream-to-pku/p/9512844.html
Copyright © 2011-2022 走看看