gpt4 book ai didi

c++ - 具有独立主机环境的线程 (c++)

转载 作者:行者123 更新时间:2023-11-28 01:26:27 26 4
gpt4 key购买 nike

我一直在研究这个主题,但我没有找到任何东西。

我有一个代码,我在其中循环一个函数,每次都在不同的线程(std::vector<std::shared_ptr<std::thread>>)中。

系统工作正常,但在这个函数中我必须为每个线程提供一个特定的环境变量值,并且知道 std::thread ,即使它独立运行,主机环境是共享的,也无法将此环境变量设置为独立值(如果我使用 setenv() 它会更改为所有线程)。

不幸的是,由于我的需要,我无法使用互斥体解决问题。

所以,这是我的问题。是否有任何类型的特定线程库(或 std::thread 或 boost 中的隐藏参数)允许我设置线程,为每个线程维护不同的环境变量?

谢谢

最佳答案

线程不可能有不同的环境变量(同一进程中的所有线程共享它们——没有办法解决)。

为什么你需要那样?如果它是一些配置值或类似的,那么你可以将它存储在 thread-local 中变量。

如果你真的需要一个单独的环境,你将不得不使用多进程(而不是线程)。

关于c++ - 具有独立主机环境的线程 (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53557413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com