thread 带返回参数
时间: 2023-07-30 12:04:14 浏览: 45
在 Python 中,可以使用 `threading` 模块中的 `Thread` 类来创建线程,并且可以通过共享变量来实现线程间的数据传递。以下是一个简单的示例代码,演示了如何在线程中传递参数并返回结果:
```python
import threading
def worker(num, result):
"""线程函数,接收一个数值参数 num,并将 num 的平方存储在 result 中"""
print(f"Worker {num} starts")
result[num] = num * num
print(f"Worker {num} ends")
if __name__ == "__main__":
# 创建一个长度为 5 的列表,用于存储每个线程的返回结果
result_list = [None] * 5
# 创建 5 个线程,每个线程传入一个数值参数,并将结果存储在 result_list 中对应的位置
threads = []
for i in range(5):
t = threading.Thread(target=worker, args=(i, result_list))
threads.append(t)
t.start()
# 等待所有线程结束
for t in threads:
t.join()
# 输出结果
print(result_list)
```
在这个示例中,我们创建了 5 个线程,并将一个长度为 5 的列表 `result_list` 作为参数传递给每个线程。每个线程会接收一个数值参数 `num`,并将 `num` 的平方存储在 `result_list` 中对应的位置。最后,我们等待所有线程结束,并输出 `result_list` 中的结果。
需要注意的是,在多线程编程中,由于线程的执行是异步的,因此必须使用线程同步机制来保证数据的一致性。在 Python 中,常用的线程同步机制包括锁、信号量等。