python 线程之threading

Posted

tags:

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

在学习了Event和Condition两个线程同步工具之后还有一个我认为比较鸡肋的工具 semaphores 

1. 使用semaphores的使用效果和Condition的notify方法的效果基本相同。每次只能通知一个阻塞线程继续运行

2. 信号量同步基于内部计数器,每调用一次acquire(),计数器减1;每调用一次release(),计数器加1.当计数器为0时,acquire()调用被阻塞

 1 import threading
 2 import time
 3 
 4 def countdown(n, sema):
 5     while n > 0:
 6         n -= 1
 7         sema.acquire()
 8         print(current countdown:,n)
 9             
10 
11 def countup(n, sema):
12     while n < 100:
13         n += 1
14         sema.acquire()
15         print(current countup:,n)
16 
17 sema = threading.Semaphore()
18 threading.Thread(target=countdown,args=(100, sema)).start()
19 threading.Thread(target=countup,args=(0, sema)).start()
20 for i in range(100):
21     sema.release()
22     time.sleep(3)

 

以上是关于python 线程之threading的主要内容,如果未能解决你的问题,请参考以下文章

python 线程之 threading(三)

多线程 Thread 线程同步 synchronized

第49天:Python 多线程之 threading 模块

第49天:Python 多线程之 threading 模块

python多线程之threading模块

Python多线程之threading模块