似乎threading.local更直接,更健壮。
答案 0 :(得分:5)
StackedObjectProxy在其下使用threading.local。 Pylons不使用plain threading.locals有两个原因:
1)它是一个比代理更具侵入性的API。例如。 request()。POST.get('file')vs request.POST.get('file')
2)StackedObjectProxys不仅是线程安全的,而且还“请求安全” - 这意味着将Pylons应用程序嵌入另一个应用程序并引用相同的代理对象是安全的。对这种安全性的需求很少,但对于WSGI应用程序调用其他WSGI应用程序和使用全局对象有多么容易,这肯定是可能的
有关详细信息,请参阅paste.registry docs
答案 1 :(得分:1)
因为threading.local
在Python 2.4中是新的。 StackedObjectProxy
如果可以,则使用threading.local。