在python(2.6.6)中,我可以让线程/进程在同时工作(编译)的同时检查网络(消息队列)的最佳方式是什么。如果我在消息队列中收到一条命令,我必须能够杀死并生成编译线程。
问问题
137 次
2 回答
0
没有用于杀死线程的官方 Python API——您需要使用特定于操作系统的方法。
如果您生成一个新进程(使用multiprocessing.Process
),那么您可以使用.terminate()
. 当然,这会导致它立即停止——它不会自行清理,并且可能会污染任何共享数据结构。
于 2012-10-23T08:57:27.280 回答
0
如前所述,没有用于杀死线程的 Python API。您必须使用多处理或协作设计模式。
如果你想做后者,你可以简单地使用协作设计模式,工作线程会定期检查它们是否应该被杀死。例如:
while not self.stopped:
do_come_compilation_stuff()
然后在你的主线程中,你应该为工作线程设置停止标志。如果您希望程序正确处理 CTRL-C 等信号,这也是一种有用的设计模式。
于 2012-10-23T09:07:48.057 回答