- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java并发编程中CountDownLatch和CyclicBarrier的使用
? java并发编程中CountDownLatch和CyclicBarrier的使用 收藏 java并发编程中CountDownLatch和CyclicBarrier的使用? ? 在多线程程序设计中,经常会遇到一个线程等待一个或多个线程的场景,遇到这样的场景应该如何解决? 如果是一个线程等待一个线程,则可以通过await()和notify()来实现; 如果是一个线程等待多个线程,则就可以使用CountDownLatch和CyclicBarrier来实现比较好的控制。 下面来详细描述下CountDownLatch的应用场景: 例如:百米赛跑:8名运动员同时起跑,由于速度的快慢,肯定有会出现先到终点和晚到终点的情况,而终点有个统计成绩的仪器,当所有选手到达终点时,它会统计所有人的成绩并进行排序,然后把结果发送到汇报成绩的系统。 其实这就是一个CountDownLatch的应用场景:一个线程或多个线程等待其他线程运行达到某一目标后进行自己的下一步工作,而被等待的“其他线程”达到这个目标后继续自己下面的任务。 这个场景中: 1. 被等待的“其他线程”------8名运动员 2. 等待“其他线程”的这个线程------终点统计成绩的仪器 那么,如何来通过CountDownLatch来实现上述场景的线程控制和调度呢? jdk中CountDownLatch类有一个常用的构造方法:CountDownLatch(int count); ??????????????????????? 两个常用的方法:await()和countdown()? 其 中count是一个计数器中的初始化数字,比如初始化的数字是2,当一个线程里调用了countdown(),则这个计数器就减一,当线程调用了 await(),则这个线程就等待这个计数器变为0,当这个计数器变为0时,这个线程继续自己下面的工作。下面是上述CountDownLatch场景的 实现: Work类(运动员): import java.util.concurrent.CountDownLatch; public class Work implements Runnable {?private int id;?private CountDownLatch beginSignal;?private CountDownLatch endSignal;??public Work(int id, CountDownLatch begin, CountDownLatch end) {??this.id = id;??this.beginSignal = begin;??this.endSignal = end;?} ?@Override?public void run() {??try {???beginSignal.await();???System.out.println(起跑...);???System.out.println(work + id + 到达终点);???endSignal.countDown();???System.out.println(work + id + 继续干其他事情);??} catch (InterruptedException e) {???// TODO Auto-generated catch block???e.printStackTrace();??}?}} Main类(终点统计仪器): import java.util.concurrent.CountDownLatch; public class Main {??public static void main(String[] args) {??CountDownLatch begSignal = new CountDownLatch(1);??CountDownLatch endSignal = new CountDownLatch(8);????for (int i = 0; i 8; i++) {???new Thread(new Work(i, begSignal, endSignal)).start();??}????try {???begSignal.countDown();? //统一起跑???endSignal.await();????? //等待运动员到达终点???System.out.println(结果发送到汇报成绩的系统);??} catch (InterruptedException e) {???e.printStackTrace();??}?}} 下面详细描述下C
您可能关注的文档
- Effect of the size of Sic whiskers on the toughness of aluminabased composite materials.pdf
- Effect of the surface polarization in polar perovskites studied from first principles.pdf
- Effective action and interaction energy of coupled quantum dots.pdf
- Effective computational models for anisotropic soft BH curves.pdf
- Effective conservation of energy and momentum algorithm using switching potentials suitable.pdf
- Effective dimensions of partially observed polytrees.pdf
- Effective Field Theory of the PionNucleonInteraction.pdf
- Effective temperatures from the fluctuationdissipation measurements in soft glassy materia.pdf
- Effective Theory Description of Weak Annihilation in B Xu l nu Decays.pdf
- Effectiveness of Dynamic Resource Allocation for Handling Internet Flash Crowds.pdf
- Java数组复制的方法.doc
- java的数据输入从控制台输入数据.doc
- Java的日期格式化常用方法.doc
- js_Window对象及方法.doc
- JPCM, Effects of the chemical bonding on the op tical and.pdf
- Jmag精典分析实例永磁电动机.pdf
- Kacsuk Analysis and Improvement of the Variable Binding Scheme in LOGFLOW.pdf
- KDP晶体单点金刚石切削加工表层力学性能的研究.pdf
- KDP晶体单点金刚石车削表面形貌分形分析.pdf
- KDP晶体生长工艺研究.pdf
最近下载
- 2025年闽教版(2024)小学英语四年级上册(全册)教学设计(附目录P123).docx
- 人教版高中英语第三册Unit 1 FESTIVALS AND CELEBRATIONS教学设计.docx VIP
- 数据结构常用算法数据结构算法.pdf VIP
- 20世纪人类最伟大的100项科学发明.doc VIP
- 北师大版九年级上册数学第一次月考试卷及答案.docx VIP
- 脊柱外科进修汇报.pptx VIP
- 2025年必威体育精装版版个人征信报告(含水印)模板【可修改】 .pdf VIP
- 金刚砂地坪施工技术交底.pdf VIP
- 人教版英语2024七年级上册全册单元知识清单(背诵版).pdf VIP
- 股权设计与股权激励.pdf VIP
文档评论(0)