线程模块没有停止方法,是为了安全,但是我们需要停止子线程呢。小编罗列了,可以有几种安全停止线程的方式,主要涉及的是需要将共享变量作为标志、event对象还有调用C函数接口,但是如果碰到需要去强制停止线程的方式,这就需要我们去调用C函数接口,一起来了解下吧。
强制停止线程,ctypes 调用 C 函数接口
importthreading importtime importinspect importctypes def_async_raise(tid,exctype): ifnotinspect.isclass(exctype): exctype=type(exctype) elifres!=1: ctypes.pythonapi.PyThreadState_SetAsyncExc(tid,None) raiseSystemError("PyThreadState_SetAsyncExcfailed") defstop_thread(thread):
如果大家想看安全停止的方式,需要去判断标识,退出线程,另外强制停止线程是需要我们ctypes 调用C语言的内部函数,强制退出线程,以上都是基于主线程停止子线程的情况哦~