gpt4 book ai didi

google-app-engine - webapp2 中的线程安全是如何实现的?

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:59 25 4
gpt4 key购买 nike

来自webapp2 documentation :

By default, webapp2 is thread-safe when the module webapp2_extras.local is available.

如果我查看 the source code我看到本地用于存储应用程序和请求。然而,我的印象是只有一个应用程序(WSGIApplication)实例在所有线程之间共享(我在主模块中创建的那个),所以当应用程序实例存储在线程局部变量中时,它实际上是同一个实例,这意味着以下代码(取自 webapp2_extras )实际上不是线程安全的(来自 get_app 的应用程序实际上在所有线程之间共享,即使它是从线程本地存储中提取的):

app = app or webapp2.get_app()
mako = app.registry.get(key)
if not mako:
mako = app.registry[key] = factory(app)

我在这里错过了什么?

最佳答案

get_app()返回的application是不同线程共享的,但不一定相同。如果您有两个模块创建 WSGIApplication,get_app() 将为它们返回不同的实例。 Mako 实例绑定(bind)到特定的应用程序,并且它获取当前应用程序的方式是线程安全的。

关于google-app-engine - webapp2 中的线程安全是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11107367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com