code
# 檔案db的內容為:# 注意一定要用雙引號,不然json無法識別
# 併發執行,效率高,但競爭寫同一檔案,資料寫入錯亂
from
multiprocessing import process,lock
import time,json,random
def search():
dic=json.load(open('db'
)) print(
'剩餘票數%s
' %dic['
count'])
def
get():
dic=json.load(open('db'
)) time.sleep(
0.1) # 模擬讀資料的網路延遲
if dic['
count
'] >0
: dic[
'count
']-=1
time.sleep(
0.2) # 模擬寫資料的網路延遲
json.dump(dic,open('db
','w'))
print(
'購票成功')
def task():
search()
get()
if __name__ == '
__main__':
for i in range(100
): # 模擬併發100個客戶端搶票
p=process(target=task)
p.start()
outputs
macname@macdemacbook-pro py %python3 cccccc.py剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
剩餘票數1
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
購票成功
macname@macdemacbook-pro py %cat db
macname@macdemacbook-pro py %
多執行緒搶票 搶票軟體變身「黃牛」 想要票 多交錢
如今,使用搶票軟體的人越來越多,曾經免費的搶票軟體們紛紛推出vip或加速包,要想票,就必須多交錢,搶票軟體搖身一變成了線上 黃牛 由於地區距離和運營商線路的原因,12306出票的伺服器可能會有很大的延遲,搶票軟體能通過伺服器來發起購票要求,延遲更低,搶的更快。除了反應時間和網路延遲的差別,搶票軟體甚...
模擬搶票系統
from multiprocessing import process,lock import json,time,random,os def piao mutex mutex.acquire 作用 按順序購票,不會插隊 dic json.load open db.txt 讀取,檢視車票總數 if ...
12306搶票軟體
import json,time 讀寫資料庫中的票數 defwr info sign,dic none if sign r with open ticket mode r encoding utf 8 as fp dic json.load fp return dic elif sign w wit...