ProcessBuilder 在修改 PB 配置时生成进程行为

ProcessBuilder spawned process behaviour when modifying PB config

我的问题是:

ProcessBuilder 环境变量或工作目录中的更改是否对先前生成的进程有影响? Debian 9 和 Windows 7 上的简单测试表明 对已经创建的进程没有影响,但我想确定这是预期的行为,最好有一些link官方文档或一些关于 ProcessBuilder 内部结构的解释该声明是不必要的。

详情:

我在并发系统中使用 Process Builder 从多个线程生成具有不同环境变量和工作目录的同一进程的实例。

我目前正在使用 ProcessBuilderControler class,它通过同步对 PB 的访问来避免典型的并发问题,以避免在 T1 和 T2 尝试同时生成进程时出现如下问题:

在这种情况下,T1 和 T2 进程会生成以 /dir2 作为工作目录的脚本。

我担心的是,即使在生成进程后更改 pb 目录,进程也可能会获得最新值。根据我强制描述的情况的测试,windows 或 linux 中的情况并非如此..

不,这是 OS 的一般限制,您不能更改 环境变量 工作目录 来自进程外部的 运行 进程。

也许可以使用调试 API,但这肯定不是 ProcessBuilder 可以做到的。


I'm currently using a ProcessBuilderControler class which avoids the typical concurrency problems by synchronizing the access to PB in order to avoid problems

在控制器 class 中使用 ProcessBuilder 时,避免并发问题的正确方法是不使用 ProcessBuilder.

的共享实例

这实际上是一般性的建议:不要在控制器中使用共享可变对象。