webapp2のドキュメントから:
デフォルトでは、モジュールwebapp2_extras.localが使用可能な場合、webapp2はスレッドセーフです。
ソースコードを調べると、アプリとリクエストの保存にローカルが使用されていることがわかります。ただし、すべてのスレッド間で共有されるアプリ(WSGIApplication)インスタンスは1つだけ(メインモジュールで作成するもの)であるという印象があるため、アプリインスタンスがスレッドローカル変数に格納されると、実際には同じインスタンスになります。 、これは、次のコード(webapp2_extrasから取得)が実際にはスレッドセーフではないことを意味します(get_appのアプリは、スレッドローカルストアから抽出されたとしても、実際にはすべてのスレッド間で共有されます)。
app = app or webapp2.get_app()
mako = app.registry.get(key)
if not mako:
mako = app.registry[key] = factory(app)
ここで何が欠けていますか?