如果您的线程正忙于执行Python代码,那么您将面临比无法杀死它更大的问题。(经过一番研究,我了解到解释器会定期发布GIL,因此前面的声明是虚假的。但是,其余注释仍然有效。)
GIL将阻止其他任何线程运行您用来执行杀死 *** 作的任何指令。
您的线程必须以协作方式编写。也就是说,它必须定期使用诸如信号量之类的信令对象进行检入,主线程可以使用该对象来指示工作线程自愿退出。
while not sema.acquire(False): # Do a small portion of work…
要么:
for item in work: # Keep working… # Somewhere deep in the bowels… if sema.acquire(False): thread.exit()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)