Подтвердить что ты не робот

Многопроцессорные методы отладки

У меня возникла проблема с отладкой приложения с несколькими процессами (в частности, с использованием пула процессов в модуле многопроцессорности python). У меня явный тупик, и я не знаю, что его вызывает. Трассировка стека недостаточна для описания проблемы, так как она отображает только код в модуле многопроцессорности.

Существуют ли какие-либо инструменты python или другие общие методы, используемые для отладки тупиков?

4b9b3361

Ответ 1

Да, отладка тупиков - это весело. Вы можете установить уровень ведения журнала выше - см. документацию Python для его описания, но очень быстро:

import multiprocessing, logging
logger = multiprocessing.log_to_stderr()
logger.setLevel(multiprocessing.SUBDEBUG)

Кроме того, добавьте ведение журнала для чего-либо в вашем коде, который имеет дело с ресурсом или с тем, что может быть в конфликте. Наконец, выстрелил в темноте: отбрасывание дочерних процессов во время импорта может вызвать проблему.

Ответ 2

Чтобы избежать взаимоблокировок в первую очередь, полезно использовать хорошие методы, поскольку параллельная обработка действительно довольно тонкая. (Бесплатно) Маленькая книга семафоров может быть очень приятным!