from multiprocessing import Process, Lock
import json
import time
def search(i):
with open('data', 'r', encoding='utf8') as f:
dic = json.load(f)
num = dic.get('ticket_num')
print(f'{i},您好!当前票数为:{num}')
# return dic
def buy(i):
with open('data', 'r', encoding='utf8') as f:
dic = json.load(f)
# dic = search(i)
time.sleep(1)
if dic.get('ticket_num') > 0:
dic['ticket_num'] -= 1
with open('data', 'w', encoding='utf8') as f :
json.dump(dic, f)
print(f'{i},您已购票成功!')
else:
print(f'{i},不好意思,票已售完!')
def run(i, suo):
search(i)
suo.acquire()
buy(i)
suo.release()
if __name__ == '__main__':
suo = Lock()
for i in range(1, 4):
p = Process(target=run, args=(i, suo))
p.start()