# 锁
# 火车票
import json
import time
from multiprocessing import Process
from multiprocessing import Lock
# def show(i):
# with open('ticket') as f:
# dic = json.load(f)
# print('余票: %s'%dic['ticket'])
def buy_ticket(i,lock):
lock.acquire() #拿钥匙进门
with open('ticket') as f:
dic = json.load(f)#将字符串转换成字典
time.sleep(0.1)
if dic['ticket'] > 0 :#如果余票大于0
dic['ticket'] -= 1
print('\033[32m%s买到票了\033[0m'%i)
else:
print('\033[31m%s没买到票\033[0m'%i)
time.sleep(0.1)
with open('ticket','w') as f:#把余票数量写入文件
json.dump(dic,f)#把字典dic写入文件f
lock.release() # 还钥匙
if __name__ == '__main__':
# for i in range(10):
# p = Process(target=show,args=(i,))
# p.start()
lock = Lock()
for i in range(10):
p = Process(target=buy_ticket, args=(i,lock))
p.start()
进程锁
最新推荐文章于 2023-01-28 11:39:52 发布