python - Python 中的线程局部变量——关于可伸缩性的负面影响?

标签 python django multithreading thread-local

我想知道使用线程局部变量是否会对我自己产生一些严重的影响。我注意到在 Flask 的情况下,they use thread locals ,并提到它可能会导致未考虑线程构建的服务器出现问题。这是一个过时的问题吗?我将线程局部变量与 Django 一起用于一些事情,在带有 Postgres 的 Ubuntu 10.04 上在 UWSGI 或 Gunicorn 之前使用 NGINX 进行部署(操作系统或数据库可能并不重要,但只是为了清楚起见)。我需要担心吗?

最佳答案

Threadlocals 并不是最稳健或最安全的做事方式 - 查看 this note , 例如。 [虽然也看到格伦的评论,下面]

我想如果你的编码很干净,你的想法是你把东西放到一个大的全局信息库中,接受那些线程局部中没有保证的数据一致性,并注意避免竞争条件,等等,你可能好吧。

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

关于python - Python 中的线程局部变量——关于可伸缩性的负面影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103741/

相关文章:

python - 将多个网页抓取到单个 csv 中

python - 如何获取当前的 PyInterpreterState?

javascript - 从 django 上的 js 获取

c - OpenMP for 循环没有给出正确的结果

java - 带屏障的 Spring TaskExecutor

python - 如何减去两个字符串?

python - 使用 Matplotlib 绘制日内烛台图

python - 为什么我无法在 Django orm 中从数据库中检索日期时间值?

python - Django 模型 reload_from_db() 与显式从数据库中调用

java - java中线程结束后如何删除文件?