2

看起来 threading.local 更直接、更健壮。

4

2 回答 2

5

StackedObjectProxy 在它下面使用了一个 threading.local。Pylons 不使用普通的 threading.locals 有两个原因:

1)它会是一个比代理更具侵入性的 API。例如 request().POST.get('file') 与 request.POST.get('file')

2) StackedObjectProxys 不仅是线程安全的,而且是“请求安全的”——这意味着 Pylons 应用程序嵌入另一个应用程序并引用相同的代理对象是安全的。对这种安全性的需求很少见,但由于 WSGI 应用程序调用其他 WSGI 应用程序 + 使用全局对象是多么容易,这肯定是一种可能性

有关更多信息,请参阅paste.registry 文档

于 2009-11-11T19:12:42.347 回答
1

因为在 Python 2.4 中threading.local是新的。如果可以的话,使用 threading.local。StackedObjectProxy

于 2009-11-06T10:53:49.960 回答