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

标签 java multithreading concurrency

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

这是我的代码:

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/

相关文章:

java - Android-在 Activity 之间共享Surfaceview或在切换 Activity 时阻止绘图任务锁定主线程

java - IllegalStateException : org. springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@xxxxxxxx 已关闭

java - ObjectFactory 工厂 = new ObjectFactory();

c# - 多线程锁定读/写文本c#

android - RxJava 在相同的阻塞 UI 线程上运行并且不显示 AlertDialog

json - 我如何使用多个 JSON 文件到 Jmeter 5.1.1 的线程组/(bzm - 并发线程组)中进行并发测试?

Java GUI 难倒了。 JFrame中只有一个显示

java - 如何测试一个方法是否被调用?

python - 当在 python 中设置变量时,如何使一个多进程循环停止另一个?

mysql - NodeJS - 处理 100 多个并发连接的内存不足