python获得线程调用函数的返回值
python获得线程调用函数的返回值
threading.Thread 并没有显式的提供获取线程调用函数返回值的方法,需求自己实现。使用数据库是一个办法: 可以让子线程将数据写到数据库中,消费线程再去数据库中读取数据;
如果不想用数据库,可以使用类的全局变量来做传递,
示例代码如下:
import os
import threading
class SubThread():
data = {}
def __init__(self):
...
def execute_func(self, key):
# 执行各种操作
...
ret = ‘要返回的数据’
SubThread.data[key] = ret
...
return
class MainThread():
...
def call_func(self, key):
obj = SubThread()
thread = threading.Thread(target = obj.execute_func, args=(key,))
thread.start()
thread.join()
resp = SubThread.data[key]
del SubThread.data[key] # 一定要记得删掉
return resp
相关内容
- python获得线程调用函数的返回值
- Python标准库:内置函数exec(object[, globals[, locals]])
- Python标准库:内置函数eval(expression, globals=None, locals=N
- Python标准库:内置函数dict(iterable, **kwarg)
- Python拾忆--多线程的socket服务器
- Python标准库:内置函数classmethod(function)
- python3 多线程的基本用法
- Python标准库:内置函数compile(source, filename, mode, flags=0
- Beginning Python From Novice to Professional (6) - 函数使用
- Python标准库:内置函数all(iterable)
评论关闭