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


本文摘自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线程间通信

阅读剩余部分

相关阅读 >>

Python3中* 和 ** 运算符的用法是什么

Python运算符-经常能用到的成员运算符(实例解析)

Python下的selenium安装的过程分享

Python一般用什么软件

Python二级证书有用吗

Python中关于列表和元组的使用定义详解

简述Python如何调用系统底层api播放wav文件

Python判断循环体结束的方法

Python中pandas和xlsxwriter读写xlsx文件的方法介绍(附代码)

水仙花数如何用Python代码表示?

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




打赏

取消

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

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

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

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

评论

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