本文摘自php中文网,作者乌拉乌拉~,侵删。
在以下的文章之中我们来了解一下什么是python中的Semaphore(信号量)。了解一下python信号量相关知识,以及Semaphore(信号量)应用于python编程之中能起到什么样的作用。Semaphore(信号量)
互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import threading,time
def run(n):
semaphore.acquire()
time.sleep(1)
print ( "run the thread: %s\n" %n)
semaphore.release()
if __name__ == '__main__' :
num= 0
semaphore = threading.BoundedSemaphore(5) #最多允许5个线程同时运行
for i in range(20):
t = threading.Thread(target=run,args=(i,))
t.start()
while threading.active_count() != 1:
pass # print threading.active_count()
else :
print ( '----all threads done---' )
print (num)
|
Events线程间通信
阅读剩余部分
相关阅读 >>
Python常用命令有哪些
Python编程语言是什么
Python螺旋线怎么画
Python使用windows api创建窗口示例
Python中的条件判断语句基础学习
Python实现对文件中图片生成带标签的txt文件方法
Python和scratch如何选择?
Python更改已存在excel文件的方法
Python项目如何运行
Python输入十个数如何输出最大值
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python Semaphore(信号量)是什么?(实例详解)