public static void main(String[] args){
int count = 10000;
CyclicBarrier cyclicBarrier = new CyclicBarrier(count);
ExecutorService executorService = Executors.newFixedThreadPool(count);
for (int i = 0; i < count; i++)
executorService.execute(new RelatedQueryGetter().new Task(cyclicBarrier));
executorService.shutdown();
while (!executorService.isTerminated()) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Task implements Runnable {
private CyclicBarrier cyclicBarrier;
public Task(CyclicBarrier cyclicBarrier) {
this.cyclicBarrier = cyclicBarrier;
}
@Override
public void run() {
try {
// 等待所有任务准备就绪
cyclicBarrier.await();
e.printStackTrace();
}
}
}
int count = 10000;
CyclicBarrier cyclicBarrier = new CyclicBarrier(count);
ExecutorService executorService = Executors.newFixedThreadPool(count);
for (int i = 0; i < count; i++)
executorService.execute(new RelatedQueryGetter().new Task(cyclicBarrier));
executorService.shutdown();
while (!executorService.isTerminated()) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Task implements Runnable {
private CyclicBarrier cyclicBarrier;
public Task(CyclicBarrier cyclicBarrier) {
this.cyclicBarrier = cyclicBarrier;
}
@Override
public void run() {
try {
// 等待所有任务准备就绪
cyclicBarrier.await();
//测试程序写这里
} catch (Exception e) {e.printStackTrace();
}
}
}
CyclicBarrier与线程池
本文介绍了一个使用Java CyclicBarrier与固定线程池实现的任务协调案例。通过创建一个包含10000个任务的场景,演示了如何让所有任务在执行前等待其余任务准备就绪,从而确保并发任务的同步执行。
207

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



