Мой вопрос:
Влияет ли изменение переменных среды или рабочих каталогов ProcessBuilder на ПРЕДЫДУЩИЕ порожденные процессы? Простые тесты в Debian 9 и Windows 7 предполагают, что это не влияет на уже созданные процессы , но я хотел бы быть уверен, что это ожидаемое поведение, предпочтительно наличие какой-либо ссылки на официальные документы или некоторое объяснение о внутренностях ProcessBuilder, что делает это утверждение ненужным.
Подробности:
Я использую Process Builder в параллельной системе для порождения экземпляров одного и того же процесса с разными переменными среды и рабочими каталогами из нескольких потоков.
В настоящее время я работаю использование класса ProcessBuilderControler, который позволяет избежать типичных проблем параллелизма путем синхронизации доступа к PB, чтобы избежать проблем, подобных следующим, когда T1 и T2 пытаются порождать процесс одновременно:
- T1 устанавливает работу dir PB со значением "/ dir" * 1 016 *
- T2 устанавливает рабочий каталог PB со значением "/ dir2"
- T1 выполняет запуск () PB
- T2 выполняет запуск () PB
В этом случае процессы T1 и T2 породили бы сценарии с / dir2 в качестве рабочего каталога.
Меня беспокоило то, что МОЖЕТ БЫТЬ, если вы изменили каталог pb даже после того, как процесс порожден, процесс получит самую последнюю версию ценность. Это не имело место в windows или linux в соответствии с моими тестами, в которых я вынудил описанную ситуацию ..