【发布时间】:2017-01-19 19:36:52
【问题描述】:
我有一个相当简单的程序,每个添加到 taskq 的任务都在执行和计算一些东西,比如 30 秒。此任务“未”在某种 while 或 for 循环中运行。
def run(self):
while not self.stopper.is_set():
DO_MY_30_SECONDS_WORK(self)
self.task_done()
现在,假设我有一个 thread.event,这可以在任务完成之前/之后检查。但是有没有办法告诉已经运行的线程停止或退出它的执行。
【问题讨论】:
-
我遇到了与您去年类似的问题,并使用 SIGNAL 来解决问题。您可以使用您的主线程启动另一个线程,并在辅助线程中启动一个时间计数器。当计数器完成时,向主线程发出信号并通过在其中获取信号来终止它。你可能想看看this
-
你的任务是一些python代码,还是你使用
subprocess运行的另一个程序? -
这只是 python 代码,但可能使用 Curl 调用..
-
嘿,作者,你得到答案了吗?如果可能的话,停止一个正在运行的线程,如果不是由循环组成的单行在两者之间突然停止
标签: python multithreading python-2.7 threadpool