フラスコのhello世界のデモは、次のとおりです。私はそうのようにこれを変更した場合は何Flask(WSGI)でグローバルシングルトンを使用すると、競合状態を心配する必要がありますか?
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のオブジェクトキャッシュのようなものを望むなら?あなたがロックを使用することができ
あなたの例(カットと正確に貼り付け)の割り当ての前に参照されているので、私のために500を返します。 – jeremyjjbrown
これは実際には記載された質問には答えません。ロックする必要はありますか?どのような条件の下で? GILのない通訳のためだけですか? – Basic