from multiprocessing import Process,Lock import json,time,random,os def piao(mutex): mutex.acquire() #作用:按顺序购票,不会插队 dic = json.load(open('db.txt')) #读取,查看车票总数 if dic['count'] > 0: dic['count'] -=1 time.sleep(random.randint(1,3)) #每个人的购票时间都不同 json.dump(dic,open('db.txt','w')) #购买之后重新写入数据 print('【%s 购票成功,剩余票数%s】'%(os.getpid(),dic['count'])) mutex.release() # 结束的时候必须开锁,否则别人进不来 if __name__ == '__main__': #Windows系统默认用这个 mutex = Lock() for i in range(14): #14个人购票 p = Process(target=piao,args=(mutex,)) p.start()