信号量Semaphore有什么用处呢

来源:5-7 同步容器-2

云端漫步2

2019-03-15

信号量Semaphore有什么用处呢

写回答

1回答

Jimin

2019-03-15

你好,Semaphore主要用于控制同时访问特定资源的线程数量,它通过协调各个线程,始终保持一定数量内的线程去使用公共资源。

举一个实际生活中的例子,以便更加深入的去了解Semaphore的作用。假设公司里总共有10台打印机,在高峰时期会要求打印很多文件(比如有100份);由于打印机公共资源有限,也就是只允许有10份文件同时打印,另外有一个指示牌用于标识当前正在工作的打印机的数目,其余90份文件只能等待;由于文件页数有多有少,有些文件必然会早一些完成打印,而有些文件必然会晚点才能完成打印。但是,如果先前10份文件中有4份文件已经打印结束,指示牌就会更新为6,那么后面就允许处于等待状态的文件中选择4份文件进行打印。

上例中的待打印的文件就好比是线程;文件打印过程就表示线程执行;文件打印结束就表示线程执行完成;指示牌为10意味着其他的线程会被阻塞,不能执行;指示牌为6,意味着可以唤醒4个线程继续执行。

0
1
云端漫步2
非常感谢!
2019-03-16
共1条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程