首页 > 其他 > 详细

CyclicBarrier、CountDownLatch与Semaphore的小记

时间:2016-04-15 11:43:24      阅读:254      评论:0      收藏:0      [点我收藏+]

CyclicBarrier:

适合的业务场景,比如

1)、,现有一大任务,需要得到全年的统计数据的,这个工作量是巨大的,那么可以将其分割为12个月的子任务,各个子任务相互独立,当所有子任务完成了,则就可以进行全年统计了,这样大大提升了统计效率。

2)、大家一起去郊游,由于大家住的地方比较分散,故需要一个集合点之后一起出发,这样大家才能玩得开心嘛。

。。。。等等

就是当有一个大任务时,需要分配多个子任务去执行,只有当所有的子任务都执行完成后,才能执行主任务。

 

 

CountDownLatch:

适合的业务场景,比如

1)、运动会中赛跑项目,之后所有的赛跑运动员准备好了,此时裁判才能宣布该赛跑项目正式开始,裁判才能打出发信枪;当参与此次赛跑项目的所有的运动员都跑完了,此次赛跑项目才能算结束,才能统计出比赛名次。

。。。。等等

就是所有的准备好了,才能开始;或者是所有的都结束了,才能算结束。

 

 

Semaphore:

适合的业务场景,比如

1)、当有10个人去上茅厕,但是只有5个坑,即只能同时5个人使用,只有当一个人不使用坑了,另一个人才能使用该空闲的坑,一直维持着只能同时5个人使用。

2)、当停车场来了100辆车时,但是只有30个停车位,即只能同时提供30个车辆停放,只有当一辆车开走了,另一辆车才能进入该空闲的停车位,一直维持着只能同时提供30个停车位。

。。。。等等

就是同时只能提供有限的,走一个才能进一个。

 

CyclicBarrier、CountDownLatch与Semaphore的小记

原文:http://www.cnblogs.com/xiaoxian1369/p/5394733.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!