第五章倒计时门闩全解
第五章 线程同步障栅 概述 在多线程程序中,很多时候需要让多个线程互相合作完成一个任务,这要求线程间能够进行协调。 例如,任务A,B,工作。 障栅相当于程序中的一个集合点,当结果在中间步骤需要整合的时候会经常用到它。当线程需要等待其他线程时,可以让该线程运行到障栅处,一旦所有线程都到达了这个障栅,障栅就撤销,线程可以继续向下运行。 例如,同学们早晨跑操前的集合,和同学们都集中到一个教室上课。 5.1 障栅 类CyclicBarrier是一个同步辅助类,实现了一个称为障栅的集合点,在不是所有线程都到达集合点之前,线程之间可以互相等待。 注意:1)障栅释放后可以循环使用。 2)类CyclicBarrier比较适合于线程数量固定的情况。 类CyclicBarrier的构造方法如下: //创建一个CyclicBarrier对象,parties为等待的线程个数 CyclicBarrier(int parties) //创建一个CyclicBarrier对象,parties为等待的线程个数,barrierAction定义最后一个进入障栅的线程要执行的动作。 CyclicBarrier(int parties,Runnable barrierAction) 例如: CyclicBarrier barrier=new CyclicBarrier(4); 表示创建了一个障栅,只有四个线程都到达了障栅后,才能继续向下运行,。 类CyclicBarrier常用方法 注意: await方法需要放置到try...catch...语句块中,捕获异常。线程在完成了自己的任务之后,就会调用await方法等待。但最后一个线程调用await方法后,将唤醒所有等待的线程,并继续该障栅点之后的工作。 public void run(){ ...//需要处理的任务 try{ barrier.await(); }catch(InterruptedException|BrokenBarrierException){ e.printStackTrace(); } } 5.2 倒计时门闩 倒计时门闩就像一个带计数开关的门,只有在门前等待的线程达到一定的数量,门闩才会打开,线程才可以继续执行。 倒计时门闩由类CountDownLatch实现,可以通过一个给定的值进行初始化,通常在同步状态中保存的是当前的计数值,线程调用await方法等待,方法countDown会导致计数值递减,当计数值为零时,所有在倒计时门闩范围内等待的线程的阻塞状态将解除。 类CountDownLatch的构造方法如下: CountDownLatch(int count) 其中,count为初始计数,必须为正数,否则将抛出异常。 类CountDownLatch的常用方法 倒计时门闩与障栅的区别 不是所有线程都需要等待门闩打开; 门闩可以由外部事件打开 倒计时门闩是一次性的,一旦计数器为0,就不能再重用了。 5.3 信号量 5.3 信号量 信号量机制通常用于限制对于某种资源同时访问的线程数量。 在Java并发库中,类Semaphore可以实现信号量机制,定义如下: public class Semaphore extends Object implements Serializable 许可集合(Permit) 一个信号量管理了一个许可(Permit)集合,可以通过方法acquier获取一个许可,如果没有许可可以使用,则等待。通过方法release可以释放一个许可。 它的构造方法定义如下: Semaphore(int permits)//用给定的许可数创建一个Semaphore对 象 Semaphore(int permits,boolean fair) //用给定的许可数创建一个Semaphore对象,并可以设定公平参数fair。参数fair可以取值为true或false,指明当有许可可用时,是采用公平策略还是非公平策略来获取许可。公平策略可以保证每个线程都能获得许可,对于防止线程出现“饥饿”现象是有帮助的。 类Semaphore常用方法 5.4 同步队列 同步队列是一个没有数
您可能关注的文档
- 第五章_同步时序逻辑电路的分析和设计全解.ppt
- 第五章_常用时序逻辑功能器件1全解.ppt
- 第五章_磨损原理全解.ppt
- 第五章_路由技术基础.全解.ppt
- 第五章 混凝土全解.ppt
- 第五章_遵守道德规范_锤炼高尚品格_第三节_家庭美德全解.ppt
- 第五章【安装说明】全解.doc
- 第五章_园林造景的艺术手法全解.ppt
- 第五章个人信用管理全解.ppt
- 第五章主成分分析全解.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- Young Sheldon《小谢尔顿》第七季第六集完整中英文对照剧本.docx VIP
- 量化经典高收益量化策略.ppt VIP
- Young Sheldon《小谢尔顿》第七季第五集完整中英文对照剧本.docx VIP
- Young Sheldon《小谢尔顿》第七季第四集完整中英文对照剧本.docx VIP
- Young Sheldon《小谢尔顿》第七季第三集完整中英文对照剧本.docx VIP
- 连锁餐饮企业顾客满意度研究—以广州市点都德为例.doc VIP
- 高中化学必修第二册第六章 化学反应与能量.pdf VIP
- Young Sheldon《小谢尔顿》第七季第二集完整中英文对照剧本.docx VIP
- 合理用药指南.pptx VIP
- Young Sheldon《小谢尔顿》第七季第一集完整中英文对照剧本.docx VIP
原创力文档

文档评论(0)