python多线程返回值怎么获取_如何从python中的线程获取返回值?

The function foo below returns a string 'foo'. How can I get the value 'foo' which is returned from the thread's target?

from threading import Thread

def foo(bar):

print('hello {}'.format(bar))

return 'foo'

thread = Thread(target=foo, args=('world!',))

thread.start()

return_value = thread.join()

The "one obvious way to do it", shown above, doesn't work: thread.join() returned None.

解决方案

In Python 3.2+, stdlib concurrent.futures module provides a higher level API to threading, including passing return values or exceptions from a worker thread back to the main thread:

import concurrent.futures

def foo(bar):

print('hello {}'.format(bar))

return 'foo'

with concurrent.futures.ThreadPoolExecutor() as executor:

future = executor.submit(foo, 'world!')

return_value = future.result()

print(return_value)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值