首页 新闻 搜索 专区 学院

关于python分布式进程

0
[待解决问题]

这个代码是我按照教程写的,但是一老是报错

import time,random,Queue
from multiprocessing.managers import BaseManager
if __name__=="__main__":
    
    task_queue=Queue.Queue()
    result_queue=Queue.Queue()
    BaseManager.register("use_task_queue",callable=lambda:task_queue)
    BaseManager.register("use_result_queue",callable=lambda:result_queue)
    manager=BaseManager(address=("",5000),authkey="qqq")
    manager.start()
    task=manager.use_task_queue()
    result=manager.use_result_queue
    for i in range(10):
        n=random.randint(0,10000)
        print"put task %d ..."%n
        task.input(n)
    print "try get results..."
    for i in range(10):
        r=result.get(timeout=1)
        print "result =%s"%r
    manager.shutdown()

就是在manager.start()的时候出错的,有没有人指导一下哈

错误如下所示:

pickle.PicklingError: Can't pickle <function <lambda> at 0x024B95F0>: it's not f
ound as __main__.<lambda>

教程链接

mcfer的主页 mcfer | 初学一级 | 园豆:144
提问于:2015-03-12 19:32
< >
分享
所有回答(1)
0

看到一篇文章说不能用lambad做callable函数

上帝的左眼 | 园豆:202 (菜鸟二级) | 2017-07-02 16:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册