多线程:所有线程执行到一个地方才往下执行,怎么实现

发布网友 发布时间:2022-04-20 04:05

我来回答

4个回答

热心网友 时间:2023-07-14 05:01

java.util.concurrent.CountDownLatch 这个类可以实现你所要的功能

例如:CountDownLatch latch = new CountDownLatch(5) //声明计数器为5个
Thread t = new Thread() {
public void run() {
try {
//TODO 你的应用
} catch (Exception e) {
//TODO 异常处理
}
finally {
latch.countDown(); //这句是关键
System.out.println("ok"); //5个线程都跑完后输出
}
}
};
t.start();
然后让以上操作循环五次(就是说同时开5个线程),那么这个"ok"就会在等到这5个线程都ok后才会被输出一次。

热心网友 时间:2023-07-14 05:01

给点提示
可以设置一个map对象
key为fileName,value 为boolean 结束了就设置为true,没结束就设置为false

然后while循环
直到map中所有的value都为true时才break;
执行你所说的语句

热心网友 时间:2023-07-14 05:01

通过标识符判断循环是否结束,然后再执行操作

热心网友 时间:2023-07-14 05:02

设置一个计数器,每个线程执行完后计数器加一然后查看计数器是否已满(任务都完成),没有的话就阻塞,是的话就唤醒其他所有线程,大家一起来执行下一次任务。要注意公用的计数器的线程安全!
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com