按顺序运行 Java 线程

您将如何按顺序执行三个线程?例如。线程 1、线程 2、线程 3。不可能将一个 Thread 的引用传递给另一个 Thread 并从 run() 方法调用。

所以代码应该是这样的:

 Thread1.start();
 Thread2.start();
 Thread3.start();

和出放应该是

 Printing Thread1
 Printing Thread2
 Printing Thread3

这可以通过使用ThreadPoolExecutor和使用阻塞队列来实现,但即使这样也不是一个可接受的答案。


答案 1

你可以使用 Executors.newSingleThreadExecutor(),但严格来说,这只启动了一个,所以可能不是预期的解决方案。Thread

仅使用类的最简单解决方案:Thread

Thread1.start();
Thread1.join();
Thread2.start();
Thread2.join();
Thread3.start();
Thread3.join();

(为了清楚起见,我省略了异常处理,可以抛出Thread.join()InterruptedException)


答案 2

在 java.util.concurrent package 中使用 ExecutorService。更精确地使用Executors.newSingleThreadExecutor();


推荐