是的,Python的QThread類可以用于實現多線程并發。QThread是Qt框架中的一個類,它允許你在單獨的線程中運行代碼,從而實現與主線程的并發執行。
以下是一個簡單的示例,展示了如何使用QThread在Python中實現多線程并發:
import sys
from PyQt5.QtCore import QThread, pyqtSignal
class WorkerThread(QThread):
# 定義一個信號,用于在子線程完成工作后通知主線程
finished = pyqtSignal()
def run(self):
# 在這里編寫要在子線程中執行的代碼
print("子線程開始執行")
# 模擬耗時任務
import time
time.sleep(2)
print("子線程執行完畢")
# 發出信號,通知主線程任務已完成
self.finished.emit()
if __name__ == "__main__":
app = sys.argv[0]
# 創建一個WorkerThread實例
worker_thread = WorkerThread()
# 連接信號和槽函數
worker_thread.finished.connect(on_finished)
# 開始子線程
worker_thread.start()
# 主線程繼續執行其他任務
print("主線程繼續執行其他任務")
# 等待子線程完成
worker_thread.wait()
print("主線程等待子線程完成")
def on_finished():
print("子線程已完成,主線程接收到信號")
if __name__ == "__main__":
sys.exit(app.exec_())
在這個示例中,我們創建了一個名為WorkerThread的QThread子類,并在其run方法中編寫了一些要在子線程中執行的代碼。我們還定義了一個名為finished的信號,用于在子線程完成工作后通知主線程。在主線程中,我們創建了一個WorkerThread實例,并將其finished信號連接到名為on_finished的槽函數。最后,我們啟動子線程并等待其完成。