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()
搶票軟體開發 二 模擬登入
本搶票軟體功能設計分為4個部分 1.模擬登入 2.自主選座 3.新增郵寄位址和購票人資訊 4.軟體封裝 這裡以大麥網的搶票軟體為例,登入提供三種方法 暫時不考慮通過第三方進行登入 簡訊登入由於涉及和手機端或者模擬手機端進行通訊,不考慮,僅剩下密碼登入和掃碼登入兩種方式,故初步思考實現模擬登入有三種方...
day28 互鎖lock 模擬搶票
lock 互斥鎖 模擬搶票 子程序1 讀取票數,更新票數 子程序2 搶票方法 1 讀取資料的實際票數 2 判斷票數 如果大於0 搶票成功,票數 1 3 更新資料庫 4 否則else等於0 搶票失敗 子程序3 1 查詢票數 呼叫子程序1的r票數方式 2.上鎖 遇到require上鎖之後,程序變成同步 ...
多執行緒搶票 搶票軟體變身「黃牛」 想要票 多交錢
如今,使用搶票軟體的人越來越多,曾經免費的搶票軟體們紛紛推出vip或加速包,要想票,就必須多交錢,搶票軟體搖身一變成了線上 黃牛 由於地區距離和運營商線路的原因,12306出票的伺服器可能會有很大的延遲,搶票軟體能通過伺服器來發起購票要求,延遲更低,搶的更快。除了反應時間和網路延遲的差別,搶票軟體甚...