python多线程退出

Python012

python多线程退出,第1张

这种情况很正常,Python自身的线程并不安全且不与PyQt兼容,你既然用PyQt了,为什么不尝试用Qt自身的线程类QThread呢?那么基于Qt自身的特点,主线程关闭时,子线程就可以安全地退出了,而不会出现你现在这种情况了。

一般来说,多线程模式下,建议主线程只处理线程本身的调度,不去处理具体业务。通常在创建线程后,join等待所有线程退出。

就题主的问题,可以创建线程一、二之后,主线程等待线程一退出,之后用sys.exit退出。

但是,线程二死循环的做法不是好习惯,用系统退出的方式,很可能造成循环内部的事务中断,建议改成条件循环,检查某个对象的数据,满足后退出循环。

这样,可以在主线程等待线程一、线程二退出,保证事务完整性。

首先子线程必须由主线程启动,所以严格意义上的“子线程结束后再执行主线程”是不可能实现,你的意思应该是:主线程创建完子线程后,等待子线程退出,在继续执行。 你的代码基本没有多大问题,只是 Join 方法位置放置不对。