java - 顺序运行 Java 线程

标签 java multithreading concurrency java.util.concurrent

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

所以代码应该是这样的:

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

输出应该是

 Printing Thread1
 Printing Thread2
 Printing Thread3

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

最佳答案

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

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

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

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

关于java - 顺序运行 Java 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461543/

相关文章:

java - 如果可以使用synchronized(this),为什么还要使用ReentrantLock?

java - Websphere 是否尊重守护进程线程?

java - 在 gwt 中调度传入的 RPC 调用时出现异常

Java 分析 : java. lang.Object.hashCode 占用一半的 CPU 时间但从未显式调用

java - 为什么 volatile 变量比普通同步更有效

multithreading - OpenMP:将所有线程分成不同的组

java - 构建失败/然后传入 Netbeans

java - 整数、 boolean 值等 Java 对象是单例对象吗?

android - java.lang.RuntimeException : Can't create handler inside thread that has not called Looper. 准备();

java - 线程安全地循环通过 ConcurrentHashMap,无阻塞