信号量from multiprocessing import Process,Semaphore
import time,random
def go_wc(sem,user):
sem.acquire()
print('%s 占到一个茅坑' %user)
time.sleep(random.randint(0,3)) #模拟每个人拉屎速度不一样,0代表有的人蹲下就起来了
sem.release()
if __name__ == '__main__':
sem=Semaphore(3)
p_l=[]
for i in range(10):
p=Process(target=go_wc,args=(sem,'user%s' %i,))
p.start()
p_l.append(p)
for i in p_l:
i.join()
print('============》')
互斥锁from multiprocessing import Process, Lock
from time import sleep
def tack():
search()
lock.acquire() # 上锁
sleep(0.01)
lock.release() # 释放
if __name__ == '__main__':
lock = Lock() # 实例化一把锁
for i in range(