java .stub 用法_浅谈Java中CyclicBarrier的用法

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 public class TestCyclicBarrier {

2

3 private static final int THREAD_NUM = 5;

4

5 public static class WorkerThread implements Runnable{

6

7 CyclicBarrier barrier;

8

9 public WorkerThread(CyclicBarrier b){

10 this.barrier = b;

11 }

12

13 @Override

14 public void run() {

15 // TODO Auto-generated method stub

16 try{

17 System.out.println("Worker's waiting");

18 //线程在这里等待,直到所有线程都到达barrier。

19 barrier.await();

20 System.out.println("ID:"+Thread.currentThread().getId()+" Working");

21 }catch(Exception e){

22 e.printStackTrace();

23 }

24 }

25

26 }

27

28 /**

29 * @param args

30 */

31 public static void main(String[] args) {

32 // TODO Auto-generated method stub

33 CyclicBarrier cb = new CyclicBarrier(THREAD_NUM, new Runnable() {

34 //当所有线程到达barrier时执行

35 @Override

36 public void run() {

37 // TODO Auto-generated method stub

38 System.out.println("Inside Barrier");

39

40 }

41 });

42

43 for(int i=0;i

44 new Thread(new WorkerThread(cb)).start();

45 }

46 }

47

48 }

49 /*

50 以下是输出:

51 Worker's waiting

52 Worker's waiting

53 Worker's waiting

54 Worker's waiting

55 Worker's waiting

56 Inside Barrier

57 ID:12 Working

58 ID:8 Working

59 ID:11 Working

60 ID:9 Working

61 ID:10 Working

62 */

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值