大家一起去东莞!!

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();
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值