threading 传递参数
时间: 2023-07-07 19:12:01 浏览: 44
在 Python 中使用 threading 模块创建线程时,可以通过传递参数来向线程中传递数据。传递参数的方法有以下几种:
1. 使用函数的参数:可以在创建线程时,将需要传递的参数作为函数的参数进行传递。例如:
```python
import threading
def worker(num):
print('Worker:', num)
threads = []
for i in range(5):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()
```
2. 使用全局变量:可以在主线程和子线程之间共享一个全局变量,通过修改全局变量的值来传递数据。例如:
```python
import threading
global_var = 0
def worker():
global global_var
global_var += 1
print('Worker:', global_var)
threads = []
for i in range(5):
t = threading.Thread(target=worker)
threads.append(t)
t.start()
```
3. 使用类的属性:可以创建一个带有属性的类,将需要传递的数据作为属性赋值给类,然后在创建线程时将类的实例作为参数进行传递。例如:
```python
import threading
class Worker:
def __init__(self, num):
self.num = num
def run(self):
print('Worker:', self.num)
threads = []
for i in range(5):
w = Worker(i)
t = threading.Thread(target=w.run)
threads.append(t)
t.start()
```