class Task(QObject, QRunnable): def __init__(self, param): super().__init__() self.param = param def run(self): # 任务执行的代码线程池怎么执行多个函数?
时间: 2024-03-10 16:48:46 浏览: 153
按要求自定义类MyRunnable。 2、创建线程池对象,执行两个线程。
可以通过创建多个任务对象,将它们添加到线程池中,从而实现执行多个函数的目的,示例如下:
```python
from PyQt5.QtCore import QObject, QRunnable, QThreadPool
class Task(QObject, QRunnable):
def __init__(self, func, param):
super().__init__()
self.func = func
self.param = param
def run(self):
self.func(*self.param)
def func1(x, y):
print("func1 is running with x={}, y={}".format(x, y))
def func2(x, y, z):
print("func2 is running with x={}, y={}, z={}".format(x, y, z))
if __name__ == '__main__':
threadPool = QThreadPool()
task1 = Task(func1, (1, 2))
task2 = Task(func2, (3, 4, 5))
threadPool.start(task1)
threadPool.start(task2)
threadPool.waitForDone()
```
在上面的示例中,我们定义了两个函数 `func1` 和 `func2`,它们分别打印出传入的参数。然后,我们创建了两个任务对象 `task1` 和 `task2`,分别传入相应的函数和参数,将它们添加到线程池中,然后等待线程池中的任务执行完毕。这样,就实现了同时执行多个函数的目的。
阅读全文