如何顺序执行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