python threading.Thread如何传递参数
时间: 2023-09-05 21:10:07 浏览: 141
在使用 `threading.Thread` 创建线程时,可以通过 `args` 参数传递参数。例如:
```python
import threading
def work(name, age):
print(f"My name is {name}, and I'm {age} years old.")
t = threading.Thread(target=work, args=("John", 25))
t.start()
```
在上面的代码中,创建了一个名为 `t` 的线程,并将 `work` 函数作为线程的执行函数。`args` 参数传递了两个参数,分别是 `"John"` 和 `25"`。在 `work` 函数中,这两个参数分别被赋值给 `name` 和 `age`。最终输出的结果为:
```
My name is John, and I'm 25 years old.
```
注意,`args` 参数必须是一个元组,如果只有一个参数,也需要加上逗号,例如 `args=("John",)`。
相关问题
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`来访问它们。