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')
如果我在我的开发服务器上运行这个,我希望得到1,2,3等等。如果同时从100个不同的客户机发出请求,会出现问题吗?预期的结果是,100个不同的客户机都会看到一个从1到100的唯一数字。或者会发生类似的情况:
-
客户端1查询。
self.param
-
在执行return语句之前,线程将切换到client2。
自身参数
再次递增。
-
线程切换回客户机1,客户机返回数字2,比如说。
-
因为只有两个客户端,所以预期的结果是1和2,而不是2和3。跳过了一个数字。