更新环境变量PATH时是否存在竞争条件?可以避免吗?

Ole*_*egK 13 windows concurrency path environment-variables race-condition

如果运行两个或多个应用程序的Windows正尝试将文件夹名称追加到环境变量PATH的同时,是有可能得到的竞争条件,使得值中的一个被追加丢失?

避免这些竞争条件的标准方法是什么?

Han*_*ant 2

不,没有这样的危险。每个过程都有自己的环境。因此他们只会更新自己的 PATH 环境变量副本。当进程终止时,此类更改也不会持久并消失。

对环境进行全局更改需要编写注册表。否则会暴露在控制面板的系统小程序中。此类更改需要注销+登录才能对每个进程生效。