Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7897014
  • 博文数量: 701
  • 博客积分: 2150
  • 博客等级: 上尉
  • 技术积分: 13233
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-29 16:28
个人简介

天行健,君子以自强不息!

文章分类

全部博文(701)

文章存档

2019年(2)

2018年(12)

2017年(76)

2016年(120)

2015年(178)

2014年(129)

2013年(123)

2012年(61)

分类: Python/Ruby

2014-12-16 22:14:18

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           
阅读(10412) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~