【问题标题】:Way to kill python thread from inside thread?从线程内部杀死python线程的方法?
【发布时间】:2012-06-29 13:35:25
【问题描述】:

我有一些 python 代码目前通过许多线程并行执行计算来执行昂贵的计算。在给定的时间段内,许多线程被动态创建和启动,它们共享相同的代码,这些代码在线程的 run 方法中明确说明。我的问题是如何在其运行方法结束时停止/终止线程? (运行只调用一次)我需要这样做以便为下一批计算创建更多线程。

#Example

class someThread(threading.Thread):
    def __init__(self):
        #some init code
    def run(self):

        #Explicitly Stated Code without constant loops

        #Something performed to stop/kill this thread

【问题讨论】:

  • 刚刚从run方法返回?
  • @JoachimPileborg 这将有效地阻止线程在代码中处于活动状态,但不会阻止线程存在。这很重要,因为我想动态生成线程。

标签: python multithreading


【解决方案1】:

您需要向主线程发出工作线程完成的信号,然后在线程上调用join

【讨论】:

  • 如何向主线程发出工作线程已完成的信号?
  • @tilaprimera 最简单的方法就是一个布尔标志,线程将其设置为返回前的最后一件事。
猜你喜欢
  • 2011-04-19
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 2023-02-01
  • 1970-01-01
  • 2016-07-10
相关资源
最近更新 更多