程序模擬購票

2021-09-16 18:37:15 字數 1182 閱讀 4116

程序模擬購票

from multiprocessing import process, lock

import json

import time

defsearch

(name)

: time.sleep(1)

dic = json.load(

open

('db.txt'

,'r'

, encoding=

'utf-8'))

print

('<%s> 檢視到剩餘票數【%s】'

%(name, dic[

'count'])

)def

get(name)

: time.sleep(1)

dic = json.load(

open

('db.txt'

,'r'

, encoding=

'utf-8'))

if dic[

'count'

]>0:

dic[

'count']-=

1 time.sleep(3)

json.dump(dic,

open

('db.txt'

,'w'

, encoding=

'utf-8'))

print

('<%s> 購票成功'

% name)

deftask

(name, mutex)

: search(name)

# 查票操作每個人都可以執行,並且是併發執行的

mutex.acquire(

)# 在這裡可以新增互斥鎖,達到序列執行,使得只能有乙個人購票成功

get(name)

mutex.release(

)if __name__ ==

'__main__'

: mutex = lock(

)for i in

range(10

):p = process(target=task,args=

('路人%s'

% i, mutex)

) p.start(

)

CCF 201609 2 火車購票 模擬

問題描述 請實現乙個鐵路購票系統的簡單座位分配演算法,來處理一節車廂的座位分配。假設一節車廂有20排 每一排5個座位。為方便起見,我們用1到100來給所有的座位編號,第一排是1到5號,第二排是6到10號,依次類推,第20排是96到100號。購票時,乙個人可能購一張或多張票,最多不超過5張。如果這幾張...

CCF2016 09 2 火車購票(小模擬)

問題描述 請實現乙個鐵路購票系統的簡單座位分配演算法,來處理一節車廂的座位分配。假設一節車廂有20排 每一排5個座位。為方便起見,我們用1到100來給所有的座位編號,第一排是1到5號,第二排是6到10號,依次類推,第20排是96到100號。購票時,乙個人可能購一張或多張票,最多不超過5張。如果這幾張...

模擬shell程序

1.用fork 建立乙個程序,再呼叫execl 用新的程式 命令 替換該子程序的內容,利用wait 來控制程序執行順序。例如模擬乙個shell程式,可以是最簡化版的shell模擬,即建立乙個子程序執行乙個固定的shell命令,也可以是從終端獲取使用者輸入的shell命令,建立子程序執行這個shell...