Демонстрация hello world для Flask:
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?