本文摘自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中format函数什么意思
Python的tornado之websocket服务端编程的介绍
Python读写sqlite3数据库的方法并且将数据写入excel的实例详解
Python迭代器和生成器区别
Python元组的知识详解
用例子一文详解Python正则表达式的语法
Python多线程之事件event的使用详解
零基础如何学习Python
Python3.6如何导入excel里面的数据
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python Semaphore(信号量)是什么?(实例详解)