lock


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()
posted @ 2021-01-31 20:11  丑矬穷屌  阅读(34)  评论(0)    收藏  举报