【问题标题】:Set different environment variables per thread为每个线程设置不同的环境变量
【发布时间】:2021-12-20 02:12:00
【问题描述】:

我想知道是否可以运行每个线程都有自己的环境变量。

我目前正在使用环境变量来设置我的代理,如下所示:

os.environ["HTTP_PROXY"] = proxy["http"]
os.environ["HTTPS_PROXY"] = proxy["https"]

但我注意到每个线程只会使用上次设置的代理。我无法为此目的使用 requests 库。

有没有一种方法可以在不为每个线程使用requests.Session() 的情况下实现这一目标?

【问题讨论】:

  • 这可能就是你要找的东西:stackoverflow.com/questions/38348556/…
  • 出于好奇,为什么?环境变量从来都不是线程间通信的手段。它们是作为程序外部的东西传递配置信息的一种方式。如果您使用的库强制您使用环境作为传入参数的唯一方法,请谨慎操作!这可能表明该库不是线程安全的。

标签: python multithreading python-requests environment-variables proxies


【解决方案1】:

我想知道是否可以运行每个线程都有自己的线程 环境变量。

没有。环境变量存在于进程的地址空间中,因此对进程的所有线程都是全局的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多