Python之多线程。

Posted jianguozhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之多线程。相关的知识,希望对你有一定的参考价值。

信号量

  信号量用来控制线程并发数的,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之多线程。的主要内容,如果未能解决你的问题,请参考以下文章

python之多线程

python面试题之多线程好吗?列举一些让Python代码以并行方式运行的方法

python高性能代码之多线程优化

python基础之多线程

python并发编程之多线程

python学习40——并发编程之多线程