python threading.Thread如何传递参数
时间: 2023-01-11 22:55:36 浏览: 119
在 Python 中使用 threading 模块创建线程时,可以使用 `threading.Thread` 类的构造函数来传递参数。具体方法是在创建 `threading.Thread` 实例时,将需要传递的参数作为关键字参数传入构造函数中。例如:
```python
import threading
def my_function(arg1, arg2):
# do something with arg1 and arg2
print(arg1, arg2)
thread = threading.Thread(target=my_function, kwargs={'arg1': 'hello', 'arg2': 'world'})
thread.start()
```
在上面的代码中,我们将 `arg1` 和 `arg2` 作为关键字参数传递给了 `threading.Thread` 构造函数,这样在调用线程的 `start()` 方法时,就可以将这些参数传递给 `my_function` 函数。
相关问题
python threading.Thread传参数
在 Python 中,可以通过 threading.Thread 的 args 参数传递参数。args 参数是一个元组,包含传递给线程函数的参数。例如:
```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()
```
这里创建了 5 个线程,每个线程都调用 worker 函数,并传递一个不同的参数(0 到 4)。在 worker 函数中,打印了传递的参数。
输出:
```
Worker: 0
Worker: 1
Worker: 2
Worker: 3
Worker: 4
```
注意,args 参数是一个元组,即使只传递一个参数,也需要使用逗号进行分隔。例如,如果要传递一个整数 1,需要使用 args=(1,)。
threading.Thread传递参数
可以通过两种方式将参数传递给`threading.Thread`对象:
1. 将参数作为`target`函数的参数传递
```python
import threading
def my_func(arg1, arg2):
# do something with arg1 and arg2
pass
t = threading.Thread(target=my_func, args=(arg1_value, arg2_value))
t.start()
```
2. 将参数作为`Thread`对象的属性传递
```python
import threading
def my_func():
# do something with self.arg1 and self.arg2
pass
t = threading.Thread(target=my_func)
t.arg1 = arg1_value
t.arg2 = arg2_value
t.start()
```
在第二种方式中,参数被保存为`Thread`对象的属性,可以在`target`函数内部通过`self`来访问它们。