【!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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值