Python 中如何结束子线程?

发现 threading 的源代码中并没有关于停止的函数。
特此求教。正常方法也好,hacking 方法也好,但要求两点:

  1. 退出前可以先执行一段代码,用于清理当前工作
  2. 子线程停止后,父线程不受影响

。。。。

阅读 16k
4 个回答

可以在父进程中维护一个子线程和是否退出标志的global dict,子线程每次循环的时候,都检查一下自己对应的退出标志位,如果退出,则执行相应的动作break。而决定那个子线程退出,可以在主线程维护。如果想一次结束所有子线程,则维护一个global bool则可以了。

自己写这个逻辑。例如设置一个变量,当变量改变时退出自身。

线程写quit(), 屡试不爽。
但是不知道这样能不能真正结束那条线程。
还有我感觉用thread好点。。
Thread有个start_new_thread, 没threading那么麻烦。

python的设计貌似是不希望用户这么做的...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题