每天早上七点三十,准时推送干货

能想起来几种呢?
先说下要求,就是三个线程,假设是线程 1,2,3, 现在的要求是:必须是线程 1 先执行,然后线程 2 再执行,最后是线程 3 执行
然后有几种实现方法呢?
其实它的本质就是实现,让线程 2,3 等待线程 1 执行完毕,所以重点就是有哪些方法可以让线程 2,3 等待
join
第一反应应该就是使用 join 方法,因为 join 本来就是支持这种机制的
比如,我在线程 B 中调用了线程 A 的 join 方法,那么线程 B 就会等线程 A 执行结束之后再执行
那么具体应该怎么使用嘞?
别慌嘛,我这里有例子,你瞅瞅:
public class ThreadLoopOne {
public static void main(String[] args) {
Thread t1 = new Thread(new Work(null));
Thread t2 = new Thread(new Work(t1));
Thread t3 = new Thread(new Work(t2));
t1.start();
t2.start();
t3.start();
}
static class Work implements Runnable {
private Thread beforeThread;
public Work(Thread beforeThread){
this.beforeThread = beforeThread;
}
@Override
public void run() {
// 如果有线程,就 join 进来,没有的话就直接输出
if (beforeThread != null ){
try {
beforeThread.join();

本文探讨如何确保线程1、2、3按照特定顺序执行。主要介绍了使用join、CountDownLatch以及单个线程池和CompletableFuture的方法,并提供了相关代码示例。
最低0.47元/天 解锁文章
632

被折叠的 条评论
为什么被折叠?



