qthread這個類主要用於解決pyqt中多線程的問題,常見用法是將后台代碼封裝在該類的run()方法中,再對qthread對象執行start()函數來啟動線程。
但往往一個業務會有粒度划分,多個粒度就意味會有多個qthread對象,要想保證這些qthread對象按照順序依次在后台執行就變得非常有必要了。
這這里我想到利用信號機制來解決這個問題,qthread1的run()函數尾部寫入self.emit(signal1,args),將signal1綁定在function2上,qthread2.start()語句放在function2中,這樣qthread1執行結束之后就會發出signal1觸發function2,繼而執行function2內部的qthread2.start()語句。
這種鏈式的執行方式非常接近回調函數的思路,屢試不爽,記錄一下。