python threading 有参数且返回结果 代码
时间: 2024-10-22 19:20:48 浏览: 13
Python3 socket即时通讯脚本实现代码实例(threading多线程)
在Python中,如果你想要在`threading`模块中创建一个线程,并传递参数并且需要返回结果,可以使用`Thread`类的子类化并结合`target`和`args`属性。这里是一个简单的例子:
```python
import threading
class ThreadWithResult(threading.Thread):
def __init__(self, function, args, return_val=None): # 初始化函数、参数和预期返回值
super().__init__()
self.function = function
self.args = args
self.return_val = return_val # 存储返回结果
def run(self):
try:
result = self.function(*self.args) # 调用函数并捕获结果
self.return_val = result # 设置线程内部的结果
except Exception as e:
print(f"Error occurred in thread: {e}")
def my_function(param1, param2):
# 这里是你的函数,它接受两个参数并返回某个值
return param1 + param2
# 创建一个新的线程实例,传入my_function及其参数
thread = ThreadWithResult(my_function, (5, 7))
# 启动线程
thread.start()
# 线程运行结束后,你可以从return_val获取结果
thread.join() # 等待线程结束
print("Return value:", thread.return_val)
```
在这个例子中,我们创建了一个自定义的线程类`ThreadWithResult`,它将函数和参数封装在一起,在线程完成任务后,会将结果存储在`return_val`变量中。
阅读全文