是的,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的槽函数。最后,我们启动子线程并等待其完成。