python多线程获取返回值
时间: 2023-07-07 15:44:52 浏览: 187
Python多线程获取返回值代码实例
5星 · 资源好评率100%
在Python中,可以通过`threading`模块中的`Thread`类的`join()`方法获取线程函数的返回值。具体的做法是,在线程函数中将需要返回的值保存在一个变量中,然后在主线程中调用`join()`方法等待线程执行完成,并使用线程对象的`result`属性获取线程函数的返回值。下面是一个简单的例子:
```python
import threading
def worker(num):
print(f'Worker {num} started')
# do some work here
result = num * 2
print(f'Worker {num} finished with result {result}')
return result
t = threading.Thread(target=worker, args=(1,))
t.start()
print('Main thread continues while worker is running')
t.join()
print(f'Main thread finished with result {t.result}')
```
在这个例子中,`worker()`函数返回的结果被保存在了`result`变量中。在主线程中,通过调用线程对象的`join()`方法等待线程执行完成,并使用线程对象的`result`属性获取线程函数的返回值。
需要注意的是,如果线程函数抛出了异常,则在调用`join()`方法时会重新抛出这个异常。如果线程函数中没有返回值,则线程对象的`result`属性为`None`。
阅读全文