多线程:所有线程执行到一个地方才往下执行,怎么实现
发布网友
发布时间: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
设置一个计数器,每个线程执行完后计数器加一然后查看计数器是否已满(任务都完成),没有的话就阻塞,是的话就唤醒其他所有线程,大家一起来执行下一次任务。要注意公用的计数器的线程安全!