信号量

import random
import time
from multiprocessing import Process
from multiprocessing import Semaphore #信号量类

def ktv(i,sem):
sem.acquire()
print('%s走进KTV'%i)
time.sleep(random.randint(60,120))
print('%s走出KTV'%i)
sem.release()

if __name__=='__main__':
sem = Semaphore(4)
for i in range(20):
p=Process(target = ktv,args=(i,sem))
p.start()

原文地址:https://www.cnblogs.com/liu1983/p/13607529.html