package com.suning.MutliThread;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadCycle implements Runnable{
private String name;
private CyclicBarrier cb;
public ThreadCycle(String name,CyclicBarrier cb) {
super();
this.name = name;
this.cb=cb;
}
public static void main(String[] args) {
CyclicBarrier cb=new CyclicBarrier(3);
// ThreadPoolExecutor tp=new ThreadPoolExecutor();
ExecutorService es=Executors.newFixedThreadPool(3);
es.execute(new ThreadCycle("王彬彬",cb));
es.execute(new ThreadCycle("方庆浩",cb));
es.execute(new ThreadCycle("凌琦",cb));
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(400);
System.out.println(name+"预备起跑!");
cb.await();
System.out.println(name+"准备开跑!");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BrokenBarrierException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//利用CyclicBarrier模拟多个运动员同时起跑的问题
最新推荐文章于 2023-02-23 10:20:35 发布