如何控制和关闭python 线程

Python015

如何控制和关闭python 线程,第1张

一般来说,多线程模式下,建议主线程只处理线程本身的调度,不去处理具体业务。通常在创建线程后,join等待所有线程退出。 就题主的问题,可以创建线程一、二之后,主线程等待线程一退出,之后用sys.exit退出。

简单来说,它kill的原理是设置一个flag位,然后线程在执行下一句python语句检测到这个位被设置了之后,就会自行退出,以达到kill的目的。另外还有一种更容易理解的flag置位的实现方式:classKillableThread(threading.Thread):def__init__(self):threading.Thread.__init__(self)self.stop = Falsedefrun(self):whilenotself.stop:somefunction()这种方式相比第一种而言,又有一点不足:kill生效的时限,最大等于somefunction执行一遍所花的时间。而第一种方式,在下一句python语句执行时就会生效。不过可以料想,第一种实现方式,整体的执行效率会慢一点。