Python线程下信号量与有边界的信号量的介绍


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于Python线程下信号量与有边界的信号量的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

信号量与有边界的信号量

信号量是一个基于计数器的同步原语,每次调用acquire()方法时,此计数器减1,每次调用release()方法时此计数器加1.。如果计数器为0,acquire()方法将会阻塞,直到有其他线程调用release()方法为止。

信号量

语法:

1

s=Semqphore(value)

创建一个新的信号量。value是计数器的初始值。如果省略value,将默认设置为1

常用方法:

s.acquire(blocking):获取信号量。如果内部计数器大于0,此方法将把它的值减1。
然后立即返回。如果它的值为0,此方法将阻塞,直到另一个线程调用release()方法为止。
blocking参数的行为与Lock和RLock对象中描述的相同。

s.release():通过将内部计数器的值加1来释放一个信号量。
如果计数器为0,而且另一个线程正在等待,该线程讲被唤醒。
如果有多个线程正在等待,只能从它的acquire()的调用中返回一个,并且顺序不确定。

有边界的信号量

语法:

1

bs=BoundedSemaphore(value)

创建一个新的有边界信号量。value是计数器的初始值,如果忽略,将默认为1.

信号量与有边界的信号量的区别

BoundedSemaphore的工作方式与Semaphore完全相同,但release()操作的次数不能超过acquire()的操作次数。

信号量与互斥锁的微妙差别

信号量可用于发送信号。例如,可以从不同线程调用acquire()和release()方法,以便在生产者和消费者线程之间进行通信。

相关推荐:

关于Python3.X线程中信号量的使用详解

python Semaphore(信号量)是什么?(实例详解)

以上就是Python线程下信号量与有边界的信号量的介绍的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

使用Python进行手机号和数字的随机生成方法

怎么用Python画圆

Python爬虫怎么设置请求头

Python与selenium以及chrome初级自动化操作的实例

怎么下载官网Python并安装

Python 读取图片文件为矩阵和保存矩阵为图片的方法

Python单链表中如何查找和删除节点?

Python里百分号什么意思

Python中的str是什么意思

Python语言及其特点简介

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...