3

我想知道是否有一些严重的影响我可能会通过使用线程本地人为自己创造。我注意到在 Flask 的情况下,他们使用 thread locals,并提到它可能会导致没有考虑线程构建的服务器出现问题。这是一个过时的担忧吗?我在 Django 中使用线程局部变量做一些事情,在 UWSGI 或 Gunicorn 前面使用 NGINX 部署,在带有 Postgres 的 Ubuntu 10.04 上(不是操作系统或数据库可能很重要,只是为了清楚起见)。我需要担心吗?

4

1 回答 1

0

Threadlocals 并不是最强大或最安全的做事方式 - 例如,请查看此说明。[虽然也看到格伦的评论,下面]

我想如果你的代码很干净,你的想法是把东西放进一个大的全球信息罐中,在那些线程本地接受无保证的数据一致性,并注意避免竞争条件等等,你可能会没事.

但是,即使考虑到这一点,线程本地变量仍然具有“魔力”,因此清楚地记录到底发生了什么以及任何时候使用线程本地变量可能会帮助您/未来的代码库开发人员。

于 2010-11-05T07:57:54.650 回答