s.acquire(blocking):获取信号量。如果内部计数器大于0,此方法将把它的值减1。
然后立即返回。如果它的值为0,此方法将阻塞,直到另一个线程调用release()方法为止。
blocking参数的行为与Lock和RLock对象中描述的相同。
s.release():通过将内部计数器的值加1来释放一个信号量。
如果计数器为0,而且另一个线程正在等待,该线程讲被唤醒。
如果有多个线程正在等待,只能从它的acquire()的调用中返回一个,并且顺序不确定。
有边界的信号量 语法: bs=BoundedSemaphore(value)
创建一个新的有边界信号量。value是计数器的初始值,如果忽略,将默认为1.
信号量与有边界的信号量的区别
BoundedSemaphore的工作方式与Semaphore完全相同,但release()操作的次数不能超过acquire()的操作次数。
信号量与互斥锁的微妙差别
信号量可用于发送信号。例如,可以从不同线程调用acquire()和release()方法,以便在生产者和消费者线程之间进行通信。
相关推荐:
关于Python3.X线程中信号量的使用详解
python Semaphore(信号量)是什么?(实例详解)
以上就是Python线程下信号量与有边界的信号量的介绍的详细内容,更多请关注Gxl网其它相关文章!
查看更多关于Python线程下信号量与有边界的信号量的介绍的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did83675