热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonapply_async函数_Pythonapply_async不执行函数

嗨,我想用多处理来加速我的代码。但是,apply_async对我不起作用。我试着做一个简单的例子,比如:frommultip

嗨,我想用多处理来加速我的代码。但是,apply_async对我不起作用。我试着做一个简单的例子,比如:from multiprocessing.pool import Pool

t = [0, 1, 2, 3, 4, 5]

def cube(x):

t[x] = x**3

pool = Pool(processes=4)

for i in range(6):

pool.apply_async(cube, args=(i, ))

for x in t:

print(x)

它并没有像我所期望的那样真正改变t。

我真正的密码是:from multiprocessing.pool import Pool

def func(a, b, c, d):

#some calculations

#save result to files

#no return value

lt = #list of possible value of a

#set values to b, c, d

p = Pool()

for i in lt:

p.apply_async(func, args=(i, b, c, d, ))

这里的问题在哪里?

谢谢你!

更新:感谢您的评论和回答,现在我明白了为什么我的简单示例行不通。然而,我的真实代码仍然有问题。我已经检查过我的func不依赖于任何全局变量,因此它似乎与我的示例代码不是同一个问题。

如前所述,我向我的func添加了一个返回值,现在我的代码是:f = Flux("reactor")

d = Detector("Ge")

mv = arange(-6, 1.5, 0.5)

p = Pool()

lt = ["uee", "dee"]

for i in lt:

re = p.apply_async(res, args=(i, d, f, mv, ))

print(re.get())

p.close()

p.join()

现在我得到以下错误:Traceback (most recent call last):

File "/Users/Shu/Documents/Programming/Python/Research/debug.py", line 35, in

print(re.get())

File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/multiprocessing/pool.py", line 608, in get

raise self._value

File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/multiprocessing/pool.py", line 385, in _handle_tasks

put(task)

File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/multiprocessing/connection.py", line 206, in send

self._send_bytes(_ForkingPickler.dumps(obj))

File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/multiprocessing/reduction.py", line 51, in dumps

cls(buf, protocol).dump(obj)

AttributeError: Can't pickle local object 'Flux.__init__..'



推荐阅读
author-avatar
布景tamimi_498
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有