锁
银行取钱 from multiprocessing import Process,Lock,Value import time def get_money(num): for i in range(100): num.value -= 1 time.sleep(0.01) def put_money(num): for i in range(100): num.value += 1 time.sleep(0.01) if __name__ == '__main__': num = Value("i",100) p_g = Process(target=get_money,args=(num,)) p_g.start() p_p = Process(target=put_money,args=(num,)) p_p.start() p_g.join() p_p.join() print(num.value) 加锁 from multiprocessing import Process,Lock,Value import time def get_money(num,l): l.acquire() for i in range(100): num.value -= 1 print(num.value) time.sleep(0.01) l.release() def put_money(num,l): l.acquire() for i in range(100): num.value += 1 print(num.value) time.sleep(0.01) l.release() if __name__ == '__main__': num = Value("i",100) l = Lock() p_g = Process(target=get_money,args=(num,l)) p_g.start() p_p = Process(target=put_money,args=(num,l)) p_p.start() p_g.join() p_p.join() print(num.value)
12306抢票 from multiprocessing import Process,Lock import time def check_ticket(i): with open("余票")as f: num = f.read() print("第%s个人查到剩余%s张票" % (i,num)) def buy_ticket(i,): with open("余票")as f: num = int(f.read()) time.sleep(0.1) if num > 0: print("