package ThreadDemo;
import java.util.Random;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import UDPDemo.RAMMapped;
public class CirclebarrierDemo {
public static void main(String[] args) {
final int len = 4;
ExecutorService pool = Executors.newCachedThreadPool();
final CyclicBarrier barrier = new CyclicBarrier(len);
System.out.println(len+" 个童鞋今天一起出去玩!ohye");
for(int i =0 ;i<len;i++){
pool.execute(new Runnable(){
@Override
public void run() {
try {
if(!barrier.isBroken()){
Thread.sleep(new Random().nextInt(10000));
System.out.println(Thread.currentThread().getName()+" 已经到达第一个目的地:天河软件园");
if(barrier.getNumberWaiting()==len-1){
System.out.println("所有人都到齐了,我们出发吧...");
}else{
System.out.println("现在有 "+(barrier.getNumberWaiting()+1) +"个同学在等");
}
barrier.await();
Thread.sleep(new Random().nextInt(10000));
System.out.println(Thread.currentThread().getName()+" 已经到达第二个目的地:天河客运站");
if(barrier.getNumberWaiting()==len-1){
System.out.println("所有人都到齐了,我们继续吧...");
}else{
System.out.println("现在有 "+(barrier.getNumberWaiting()+1) +"个同学在等");
}
barrier.await();
Thread.sleep(new Random().nextInt(10000));
System.out.println(Thread.currentThread().getName()+" 已经到达第三个目的地:保持神秘~~");
if(barrier.getNumberWaiting()==len-1){
System.out.println("终于所有人都到达目的地了:东莞!!纳尼??");
}else{
System.out.println("现在有 "+(barrier.getNumberWaiting()+1) +"个同学在等");
}
barrier.await();
}
System.out.println("会长喊话中...zzzzz");
Thread.sleep(10000);
System.out.println("各自玩球吧...");
barrier.reset();
Thread.sleep(new Random().nextInt(5000));
System.out.println(Thread.currentThread().getName()+" go!!");
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
pool.shutdown();
}
}
大家一起去东莞!!
最新推荐文章于 2021-05-23 11:23:06 发布