我正在考虑使用 Python 调用各种 dll,这些 dll 将执行诸如访问 LAN(在 Windows 上)或发出 HTTP 请求之类的操作。这些 dll 可能写得不好并被卡住。我的第一个问题是,在 Python 线程中隔离这些 dll 调用是否会保证 Python 主线程不会卡住?我的第二个问题是如果 DLL 陷入无限循环,Python 是否可以杀死线程?
我知道我可以通过在自己的进程中启动 dll 来解决这个问题,但我更希望只有一个进程。
我可以使用最新版本的 Python。
我正在考虑使用 Python 调用各种 dll,这些 dll 将执行诸如访问 LAN(在 Windows 上)或发出 HTTP 请求之类的操作。这些 dll 可能写得不好并被卡住。我的第一个问题是,在 Python 线程中隔离这些 dll 调用是否会保证 Python 主线程不会卡住?我的第二个问题是如果 DLL 陷入无限循环,Python 是否可以杀死线程?
我知道我可以通过在自己的进程中启动 dll 来解决这个问题,但我更希望只有一个进程。
我可以使用最新版本的 Python。
如果另一个线程正在发出阻塞调用,您的主线程仍将响应。尽管如此,终止线程永远不会真正干净,并且可能会留下一团糟。请参阅有关TerminateThread的 MSDN 文档。
随着 subprocess 模块的引入,您在使用多个进程时有什么顾虑?