Python多线程-信号量
信号量就是一个线程中有多个线程
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"
import threading
import time
semaphore = threading.BoundedSemaphore(5) #最多允许5个线程同时运行
def Run_Thread(n):
semaphore.acquire()
time.sleep(1)
print("Run %s thread" %n)
semaphore.release()
for i in range(24):
t = threading.Thread(target=Run_Thread,args=(i,))
t.start()
while threading.active_count() != 1:
pass
else:
print("---All Thread Have Done---")
脚本运行的情况是5个线程同时运行,最后运行剩余的4个线程
但不是按顺序规定的5个线程同时运行,而是先运行最前面的5个线程
如果这5个线程中有先运行完的,后面的线程就不上去
例如5个线程中先运行完3个线程,则后面的线程会补2个上去

浙公网安备 33010602011771号