主线程传递参数给子线程
时间: 2023-09-04 09:15:50 浏览: 56
在 Python 中,可以使用 `threading.Thread` 类来创建子线程。如果要向子线程传递参数,有以下两种方法:
1. 在创建子线程的时候,通过 `args` 参数来传递参数。
```python
import threading
def worker(num):
print(f"Worker {num} started")
# 创建子线程,并传递参数
t = threading.Thread(target=worker, args=(1,))
t.start()
```
在这个例子中,`args=(1,)` 表示要传递一个参数 `1` 给 `worker` 函数。
2. 继承 `threading.Thread` 类,重写 `__init__` 方法,在其中保存参数,并在 `run` 方法中使用。
```python
import threading
class WorkerThread(threading.Thread):
def __init__(self, num):
threading.Thread.__init__(self)
self.num = num
def run(self):
print(f"Worker {self.num} started")
# 创建子线程,并传递参数
t = WorkerThread(1)
t.start()
```
在这个例子中,`WorkerThread` 类继承了 `threading.Thread` 类,并重写了 `__init__` 和 `run` 方法。在 `__init__` 方法中保存了要传递的参数 `num`,在 `run` 方法中使用了这个参数。
无论使用哪种方法,都可以向子线程传递参数。