码迷,mamicode.com
首页 > 编程语言 > 详细

Python之多线程。

时间:2018-03-10 00:17:29      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:控制线   hid   信号   isp   结果   star   其他   port   map   

信号量

  信号量用来控制线程并发数的,BoundedSemaphore或Semaphore管理一个内置的计数 器,每当调用acquire()时-1,调用release()时+1。

       计数器不能小于0,当计数器为 0时,acquire()将阻塞线程至同步锁定状态,直到其他线程调用release()。(类似于停车位的概念)

       BoundedSemaphore与Semaphore的唯一区别在于前者将在调用release()时检查计数 器的值是否超过了计数器的初始值,如果超过了将抛出一个异常。

技术分享图片
 1 import threading,time
 2 class myThread(threading.Thread):
 3     def run(self):
 4         if semaphore.acquire():
 5             print(self.name)
 6             time.sleep(5)
 7             semaphore.release()
 8 if __name__=="__main__":
 9     semaphore=threading.Semaphore(5) //计数器为5
10     thrs=[]
11     for i in range(100):
12         thrs.append(myThread())
13     for t in thrs:
14         t.start()
15 //执行结果:每五秒打印出5条线程名字
View Code

 

Python之多线程。

标签:控制线   hid   信号   isp   结果   star   其他   port   map   

原文地址:https://www.cnblogs.com/jianguozhang/p/8536881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!