写作绅士,读作丧尸 X岛揭示板
顺猴者昌 逆猴者亡 首页版规 |用户系统 |移动客户端下载 | 丧尸路标 | | 常用图串及路标 | 请关注 官方公众号:【X岛揭示板】 官方微博: 【@X岛极速版】| 人,是会思考的芦苇
常用串:·豆知识·跑团板聊天室·公告汇总串·X岛路标

No.55257754 - 无标题 - 技术宅


回应模式
No.55257754
名 称
E-mail
标题
颜文字
正文
附加图片
•程序语言、压制投稿、视频制作以及各计算机领域的技术问题
•我觉得还是CSDN靠谱一点
•本版发文间隔为15秒。

无标题 无名氏 2023-02-01(三)22:44:42 ID:BBnuQGy [举报] [订阅] [只看PO] No.55257754 [回应] 管理
朱军,小肥想请教一下用python语言怎么在函数里实现多进程计算?
我电脑是windows系统,在使用多进程的时候如果不在主进程加上if __name__ == '__main__'的判断条件就会报错,但是加上以后在别的文件里面调用这个函数就不满足条件判断,就不会进行主进程。怎么样把主进程放进函数里面呢?
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2023-02-01(三)22:45:14 ID:BBnuQGy (PO主) [举报] No.55257771 管理
jp如图所示
无标题 无名氏 2023-02-02(四)09:15:34 ID:90nrjbn [举报] No.55264284 管理
不用if __name__ == '__main__'直接面向过程可以吗
无标题 无名氏 2023-02-02(四)09:20:31 ID:BBnuQGy (PO主) [举报] No.55264363 管理
>>No.55264284
会报错,百度上说这是windows系统的问题
无标题 无名氏 2023-02-02(四)15:37:19 ID:THqu6kc [举报] No.55272911 管理
def main():
...

罢了,再写

if __name__ == '__main__': main()

(挠头
无标题 无名氏 2023-02-02(四)15:38:14 ID:THqu6kc [举报] No.55272925 管理
我觉得你先把 Python 文件怎么运行起来的先搞清楚?
无标题 无名氏 2023-02-02(四)16:24:08 ID:z82mImw [举报] No.55273837 管理
multiprocessing 模块
无标题 无名氏 2023-02-02(四)16:29:06 ID:YloHKCX [举报] No.55273934 管理
你先把错误贴上来,百度这么说不一定就是对的,没有错误信息没有代码我们也很难办
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2023-02-02(四)16:50:49 ID:BBnuQGy (PO主) [举报] No.55274365 管理
>>No.55273934
你说得对。这是我的代码
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2023-02-02(四)16:51:38 ID:BBnuQGy (PO主) [举报] No.55274384 管理
这是报错
无标题 无名氏 2023-02-02(四)23:27:44 ID:z82mImw [举报] No.55284111 管理
python版本也贴下
无标题 无名氏 2023-02-03(五)02:19:29 ID:bRRnPeX [举报] No.55287646 管理
>>No.55272911
确实都是这么写的( ゚∀。)
如果别的文件里要调用的话就from xxx import main吧

另外要写if __name__ == '__main__'是因为Windows和Linux在使用多进程时创建进程的机制不一样,具体可以参见这里 https://stackoverflow.com/questions/59124525/python-concurrent-futures-processpoolexecutor-fail-to-work

其实简单的多进程用from concurrent.futures import ProcessPoolExecutor会更简单一些(比如不需要自己close和join),多线程的话也有用法类似的ThreadPoolExecutor可以用(=゚ω゚)=
无标题 无名氏 2023-02-03(五)08:12:37 ID:THqu6kc [举报] No.55288976 管理
>>No.55274365
一定采用 ifmain
其他代码要调用时引入bb并调用bb就行

UP主: