码迷,mamicode.com
首页 > 编程语言 > 详细

python获得线程调用函数的返回值

时间:2014-12-16 22:39:16      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:style   ar   os   使用   sp   on   数据   art   bs   

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获得线程调用函数的返回值

标签:style   ar   os   使用   sp   on   数据   art   bs   

原文地址:http://blog.csdn.net/fireroll/article/details/41969041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!