package net.liuyx.java;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class PrintNum {
static final int FINAL_NUM = 75;
private List<PrintTasks> tasks = new ArrayList<PrintTasks>();
private ExecutorService exec = Executors.newCachedThreadPool();
private CyclicBarrier barrier;
public PrintNum(int nTasks, final int pause) {
barrier = new CyclicBarrier(nTasks,new Runnable() {
@Override
public void run() {
for(PrintTasks task : tasks)
if(task.getNum() >= FINAL_NUM) {
exec.shutdownNow();
return;
}else {
task.printN
三个Java多线程循环顺序周期打印1-75个数(用CyclicBarrier实现代码)
最新推荐文章于 2022-06-06 16:46:18 发布