Могут ли зависшие потоки Python мешать другим потокам, если нет общих ресурсов? - PullRequest
0 голосов
/ 15 сентября 2010

Я рассматриваю возможность использования Python для вызова различных библиотек, которые будут выполнять такие вещи, как доступ к локальной сети (в Windows) или выполнение HTTP-запросов. Эти dll могут быть плохо написаны и застрять. Мой первый вопрос: может ли изоляция этих вызовов dll в потоках Python гарантировать, что основной поток Python не застрянет? Мой второй вопрос: может ли Python уничтожить поток, если DLL застрянет в бесконечном цикле?

Я знаю, что мог бы решить эту проблему, запустив dll в своих собственных процессах, но я бы предпочел иметь только один процесс.

Я мог бы использовать последние версии Python.

1 Ответ

1 голос
/ 15 сентября 2010

Ваш основной поток по-прежнему будет реагировать, если другой поток выполняет блокирующий вызов.Тем не менее, завершение потока никогда не бывает действительно чистым и может привести к путанице.См. Документацию MSDN для TerminateThread .

С появлением модуля подпроцесса, что вас беспокоит, когда речь идет об использовании нескольких процессов?

...