Java并发线程的顺序执行

Posted 月尚西珏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java并发线程的顺序执行相关的知识,希望对你有一定的参考价值。

 1 /**
 2  * 问题:有线程a、b、c,如何让它们顺序执行?
 3  * 方式一:可用Join()方法实现
 4  * 方式二:可用newSingleThreadExecutor()
 5  * Created by Smile on 2018/8/12.
 6  */
 7 public class ThreadByOrder {
 8 
 9     public static void main(String[] args) throws InterruptedException {
10 
11         Thread a = new Thread(new ThreadTest("a"));
12         Thread b = new Thread(new ThreadTest("b"));
13         Thread c = new Thread(new ThreadTest("c"));
14 
15         //方式一实现
16         a.start();
17         a.join();
18         b.start();
19         b.join();
20         c.start();
21 
22         Thread d = new Thread(new ThreadTest("c"));
23         Thread e = new Thread(new ThreadTest("d"));
24         Thread f = new Thread(new ThreadTest("e"));
25         //方式二实现
26         ExecutorService singlePool = Executors.newSingleThreadExecutor();
27         singlePool.submit(d);
28         singlePool.submit(e);
29         singlePool.submit(f);
30         singlePool.shutdown();
31     }
32 
33     static class ThreadTest implements Runnable{
34 
35         private String threadName;
36 
37         public ThreadTest(String name){
38             this.threadName = name;
39         }
40 
41         public ThreadTest() {
42         }
43 
44         public void run() {
45             if("a".equals(threadName)||"f".equals(threadName))
46                 try {
47                     Thread.sleep(5000);
48                 } catch (InterruptedException e) {
49                     e.printStackTrace();
50                 }
51             System.out.println("thread "+threadName+" is running...");
52         }
53     }
54 }

 

以上是关于Java并发线程的顺序执行的主要内容,如果未能解决你的问题,请参考以下文章

Java同步—并发三大性质

Java进阶之光!2021必看-Java高级面试题总结

Java工程师面试题,二级java刷题软件

面试官:Java中线程是按什么顺序执行的?

[Think In Java]基础拾遗4 - 并发

Java线程总结