燒瓶中的全局變量是否安全?如何在請(qǐng)求之間共享數(shù)據(jù)?在我的應(yīng)用程序中,通過(guò)發(fā)出請(qǐng)求來(lái)更改公共對(duì)象的狀態(tài),響應(yīng)取決于狀態(tài)。class SomeObj():
def __init__(self, param):
self.param = param def query(self):
self.param += 1
return self.param
global_obj = SomeObj(0)@app.route('/')def home():
flash(global_obj.query())
render_template('index.html')如果我在我的開(kāi)發(fā)服務(wù)器上運(yùn)行它,我希望得到1,2,3等等。如果同時(shí)向100個(gè)不同的客戶提出請(qǐng)求,可能出現(xiàn)問(wèn)題嗎?預(yù)期的結(jié)果是100個(gè)不同的客戶端每個(gè)都看到1到100之間的唯一數(shù)字?;蛘邥?huì)發(fā)生這樣的事情:客戶端1查詢。self.param增加1。在可以執(zhí)行return語(yǔ)句之前,線程切換到客戶端2. self.param再次遞增。線程切換回客戶端1,然后客戶端返回?cái)?shù)字2,比如說(shuō)?,F(xiàn)在線程移動(dòng)到客戶端2并返回他/她的數(shù)字3。由于只有兩個(gè)客戶端,預(yù)期結(jié)果為1和2,而不是2和3.跳過(guò)了一個(gè)數(shù)字。當(dāng)我擴(kuò)展我的應(yīng)用程序時(shí),這會(huì)發(fā)生嗎?我應(yīng)該看一下全局變量的替代方案?
添加回答
舉報(bào)
0/150
提交
取消