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