#python #windows #multithreading #python-3.x
#python #Windows #многопоточность #python-3.x
Вопрос:
Я рассматриваю возможность использования Python для реализации программы, которая требует обширной многопоточности. Другое требование заключается в том, что он будет выполняться на настольных компьютерах, поэтому из-за большого количества процессов приложение будет выглядеть беспорядочным и его будет сложнее отключить (в диспетчере задач). Поэтому я рассматриваю возможность использования как многопоточного, так и многопроцессорного модулей для уменьшения количества процессов. Насколько я понимаю, GIL будет применяться только к одному процессу. Мой вопрос: есть ли какие-либо причины не смешивать с использованием двух модулей?
Ответ №1:
Примечание: Это предупреждение не относится к Windows.
Будьте осторожны! Существует неприятная ошибка, связанная с блокировками при объединении многопоточности и многопроцессорности, которая также обнаруживается при использовании модуля ведения журнала. Я был укушен за последнюю неделю, когда дочерние процессы иногда зависали. Теперь, когда я отключил ведение журнала, пока все хорошо (хотя и не лучшее решение!).:
https://twiki.cern.ch/twiki/bin/view/Main/PythonLoggingThreadingMultiprocessingIntermixedStudy
Комментарии:
1. ошибка 6721 не имеет ничего общего с многопоточностью в Windows
2. Верно, пропустил тег Windows.
3. Вы только что сэкономили мне часы отладки… Спасибо!
Ответ №2:
Кроме базового принципа KISS …. дерзайте, проблем возникнуть не должно.