爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 21871|回复: 4

[求助] Python并行卡住

[复制链接]

新浪微博达人勋

发表于 2021-3-29 09:13:40 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 callmezoro 于 2021-3-29 12:35 编辑

在使用multiprocessing.Pool创建多进程,然后用pool.map传递参数进行并行的时候遇到一个问题,就是在并行结束之后,我希望对并行的结果进行进一步处理(平均,存储),但是这些处理并不需要并行,然而程序每次运行到这的时候就会卡住,cpu时间就不动了,不知道原因,有没有大佬知道怎么解决 微信图片_20210329091106.png 微信图片_20210329110919.png

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-3-29 10:58:46 | 显示全部楼层
你这main函数里的readt之类的方法并没有出现在你的截图里,所以我也不知道这是什么意思。如果光看截图中的内容,感觉来说并没有特别大的问题。建议你尝试从pool=Pool(24)到pool.join()这几行,改为
  1. with Pool(24) as pool:
  2.     qt = pool.map(main,m)
复制代码
然后再尝试运行一下看看。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-3-29 12:36:48 | 显示全部楼层
astiny 发表于 2021-3-29 10:58
你这main函数里的readt之类的方法并没有出现在你的截图里,所以我也不知道这是什么意思。如果光看截图中的 ...

我补充了一下图片,就是普通的读取nc的内容,用这个方法也试了,还是不可以,很奇怪
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-3-29 16:12:42 | 显示全部楼层
看起来计算是相互独立的,可以试试多线程,concurrent.futures模块
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-4-1 17:06:54 | 显示全部楼层
问题解决了!
当函数和调用函数的语句在同一个py文件中时,需要把调用语句放在
if __name__ == '__name__':
下才可以,但是原因未知
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表