1. 程式人生 > >python-day33--互斥鎖

python-day33--互斥鎖

__name__ task 成功 opened sleep star c99 搶票 pid

鎖的意思就是:一個一個的執行 技術分享
 1 from multiprocessing import Process,Lock
 2 import os
 3 import time
 4 def work(mutex):
 5     mutex.acquire()
 6     print(task[%s] 上廁所 %os.getpid())
 7     time.sleep(3)
 8     print(task[%s] 上完廁所 %os.getpid())
 9     mutex.release()
10 
11 if __name__ == __main__:
12     mutex=Lock()
13 p1=Process(target=work,args=(mutex,)) 14 p2=Process(target=work,args=(mutex,)) 15 p3=Process(target=work,args=(mutex,)) 16 p1.start() 17 p2.start() 18 p3.start() 19 20 print()
互斥鎖 技術分享
 1 from multiprocessing import Process,Lock
 2 import json
 3 import time
 4 import
random 5 import os 6 def search(): 7 dic=json.load(open(a,)) 8 print(剩余票數%s %dic[count]) 9 10 def get_ticket(): 11 dic=json.load(open(a,)) 12 if dic[count] > 0: 13 dic[count]-=1 14 json.dump(dic,open(a,w)) 15 print(%s 購票成功 %os.getpid())
16 def task(mutex): 17 search() 18 time.sleep(random.randint(1, 3)) #模擬購票一系列繁瑣的過程所花費的時間 19 mutex.acquire() 20 get_ticket() 21 mutex.release() 22 if __name__ == __main__: 23 mutex=Lock() 24 for i in range(50): 25 p=Process(target=task,args=(mutex,)) 26 p.start()
模擬搶票

python-day33--互斥鎖