首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java.util.concurrent包探秘(1)之CyclicBarrier

2013-08-01 
java.util.concurrent包探秘(一)之CyclicBarrierpackage com.gw.concurrentimport java.io.IOExceptioni

java.util.concurrent包探秘(一)之CyclicBarrier
package com.gw.concurrent;import java.io.IOException;import java.util.Random;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** *@author zcc *@date 2013-7-24 *@description *@version 1.0.0 */class Runner implements Runnable { private CyclicBarrier barrier; private String name; final Random random = new Random(); public Runner(CyclicBarrier barrier, String name) { super(); this.barrier = barrier; this.name = name; } @Override public void run() { try { Thread.sleep(1000 * random.nextInt(8)); System.out.println(name + " 准备就绪!"); barrier.await(); //在barrier中所有参与者调用wait方法之前,一直等待。 } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } } } public class TestCyclicBarrier { public static void main(String[] args) throws IOException, InterruptedException { CyclicBarrier barrier = new CyclicBarrier(3, new Runnable(){@Overridepublic void run(){System.out.println("都到齐了,准备出发");}}); ExecutorService executor = Executors.newFixedThreadPool(3); executor.submit(new Thread(new Runner(barrier, "zhangsan"))); executor.submit(new Thread(new Runner(barrier, "lisi"))); executor.submit(new Thread(new Runner(barrier, "wangwu"))); executor.shutdown(); } }

?

?

热点排行