我有三个连接的线程,即第二个线程在第一个死后执行。
这是我的代码:
public class Main {
public static void main(String args[]) throws Exception {
final Thread thrdA = new Thread(() -> System.out.println("Message 1"));
final Thread thrdB = new Thread(() -> System.out.println("Message 2"));
final Thread thrdC = new Thread(() -> System.out.println("Message 3"));
thrdA.start();
thrdA.join();
thrdB.start();
thrdB.join();
thrdC.start();
thrdC.join();
}
}
我如何使用 ExecutorService
而不是三个线程对象来实现此功能?
最佳答案
如果您想要/需要的是在与主应用程序线程不同的单个线程中一个接一个地执行一组作业,则使用 Executors#newSingleThreadExecutor
.
ExecutorService es = Executors.newSingleThreadExecutor();
es.submit(() -> System.out.println("Message 1"));
es.submit(() -> System.out.println("Message 2"));
es.submit(() -> System.out.println("Message 3"));
es.shutdown();
关于java - 如何顺序执行ExecutorService中的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32037844/