和multiprocessing斗智斗勇的故事

因为我要更新luoxis框架,所以趁机学了multiprocessing多进程

斗智斗勇的过程中我看的是一篇文章搞定Python多进程(全) – 知乎

说实话这个模块不难,但是很灵性,特别对于我

我看完了教程上的代码,开始自己写,在没有用数据共享的时候,我没有写if __name__ == ‘__main__’:的习惯,然后我写下了下面的代码

from multiprocessing import Process, Manager

def fun1(dic,lis,index,dic2):
    dic2.append('a')
    dic[index] = 'a'
    dic['2'] = 'b'    
    lis.append(index)    #[0,1,2,3,4,0,1,2,3,4,5,6,7,8,9]



with Manager() as manager:
    dic = manager.dict()#注意字典的声明方式,不能直接通过{}来定义
    l = manager.list(range(5))#[0,1,2,3,4]
    dic2 = manager.list()
    process_list = []
    for i in range(10):
        p = Process(target=fun1, args=(dic,l,i,dic2))
        p.start()
        process_list.append(p)

    for res in process_list:
        res.join()
    print(dic)
    print(l)
    print(dic2)

多次运行多次报错,到处改都改不好,但是我也以为写if __name__ == ‘__main__’:程序入口是一个编码习惯,然后我就不写,折腾了半天

才发现哪里有点不对劲,我发现报错有if __name__ == ‘__main__’:,然后就去搜索了一下得到Python中if __name__==”__main__” 语句在调用多进程Process过程中的作用_ljwwjl的博客-CSDN博客

然后就把问题解决了

{
'title' :'和multiprocessing斗智斗勇的故事',
'Current page link''https://www.df100.ltd/308.asp',
'author''星姮十织',
'copyright': '维度前沿|Dimension Frontier © 2020-2023. 版权所有',
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇