信号量 某一段代码,同一时间,只能被N个进程使用
1 import time 2 import random 3 from multiprocessing import Porcess 4 from multiprocessing import Semaphore 5 6 def ktv(i,sem): 7 sem.acquire() #获取钥匙 8 print('%s走进ktv'%i) 9 time.sleep(random.randint(1,5)) 10 print('%s走出ktv'%i) 11 sem.release() #换钥匙 12 13 14 if __name__ == '__main__': 15 sem = Semaphore(4) 16 for i in range(20): 17 p = Process(target=ktv,agrs=(i,sem)) 18 p.start() 19