Flask的“Hello World”演示如下:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
如果我像这样修改它会怎么样:
from flask import Flask
app = Flask(__name__)
a = 1
b = 2
c = 3
@app.route("/")
def hello():
a += 1
b += a
c += b
return "Hello World!"
if __name__ == "__main__":
app.run()
我知道WSGI应用程序可能有多个线程。 hello
函数可以同时在多个线程上运行,这样我们就会有竞争条件。这是正确的吗?如果上述代码不是线程安全的,我该怎么做才能使其线程安全?
避免使用全局变量是一种可能的解决方案,但你总是能够避免使用全局变量吗?如果我想要像Python对象缓存这样的东西,该怎么办?
g
对象只在请求期间保留状态,因此对于上述用例没有用处。 - Sergey Orshanskiy