信号量Semaphore有什么用处呢
来源:5-7 同步容器-2
![](http://img1.sycdn.imooc.com/user/5333a0600001f9ed02000200-100-100.jpg)
云端漫步2
2019-03-15
信号量Semaphore有什么用处呢
写回答
1回答
-
你好,Semaphore主要用于控制同时访问特定资源的线程数量,它通过协调各个线程,始终保持一定数量内的线程去使用公共资源。
举一个实际生活中的例子,以便更加深入的去了解Semaphore的作用。假设公司里总共有10台打印机,在高峰时期会要求打印很多文件(比如有100份);由于打印机公共资源有限,也就是只允许有10份文件同时打印,另外有一个指示牌用于标识当前正在工作的打印机的数目,其余90份文件只能等待;由于文件页数有多有少,有些文件必然会早一些完成打印,而有些文件必然会晚点才能完成打印。但是,如果先前10份文件中有4份文件已经打印结束,指示牌就会更新为6,那么后面就允许处于等待状态的文件中选择4份文件进行打印。
上例中的待打印的文件就好比是线程;文件打印过程就表示线程执行;文件打印结束就表示线程执行完成;指示牌为10意味着其他的线程会被阻塞,不能执行;指示牌为6,意味着可以唤醒4个线程继续执行。012019-03-16
相似问题