如何顺序执行ExecutorService中的任务?

我有三个连接的线程,即第二个线程在第一个死后执行。

这是我的代码:

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();

以上是 如何顺序执行ExecutorService中的任务? 的全部内容, 来源链接: utcz.com/qa/422244.html

回到顶部