Безопасный способ завершить подпроцесс Python?Python

Программы на Python
Ответить
Anonymous
 Безопасный способ завершить подпроцесс Python?

Сообщение Anonymous »

Я использую модуль многопроцессорности Python для одновременной обработки нескольких функций. Каждая функция порожденного процесса получает некоторые начальные входные аргументы и соединение Pipe для отправки результатов обратно. По разным причинам мне приходится использовать отдельные процессы, подобные этому, т. е. такие инструменты, как методы Pool.map_async(), не обсуждаются.

Иногда мне нужно для завершения процесса, завершение которого занимает слишком много времени.

Согласно документации процесса:


Внимание! Если этот метод используется, когда связанный процесс использует
канал или очередь, тогда канал или очередь могут быть повреждены и
могут стать непригодными для использования другим процессом. Аналогично, если процесс
получил блокировку, семафор и т. д., то его завершение может
привести к взаимоблокировке других процессов.

Меня не волнует первая часть, так как каждый процесс получает свой собственный объект канала, но как мне определить, 'приобрёл ли процесс блокировку или семафор', и /или завершить работу таким образом, чтобы безопасно для оставшейся части моей программы?

Подробнее здесь: https://stackoverflow.com/questions/617 ... subprocess
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»