python多进程加快for循环_python多进程 通过for循环 join 的问题
代碼如下:
importos
frommultiprocessing importProcess
deffunc(num):print('in func',num,os.getpid(),os.getppid())if__name__ =='__main__':print('in main',os.getpid(),os.getppid()) p_l = []fori inrange(10): p =Process(target=func,args=(i,)) p.start()# start不是運行一個程序,而是調用操作系統的命令,要創建子進程,非阻塞 p_l.append(p)print(p_l)forp inp_l : p.join()#阻塞,直到p這個子進程執行完畢之后再繼續執行print('主進程 的 代碼執行結束了')
執行結果如下:
in main 10388 1160
[, , , , , , , , , ]
in func 1 5836 10388
in func 0 12936 10388
in func 2 12856 10388
in func 4 13448 10388
in func 5 12516 10388
in func 3 5048 10388
in func 6 6664 10388
in func 7 12916 10388
in func 8 12172 10388
in func 9 6824 10388
主進程 的 代碼執行結束了
問題:
有沒有可能在 for 循環 join的時候,比如現在循環到p3.join了,但是p3已經執行完畢了,這時候有沒有可能會打印最后那句 print("主進程 的 代碼之行結束了")
急急急,這個問題想了很久,實在是想不明白了
總結
以上是生活随笔為你收集整理的python多进程加快for循环_python多进程 通过for循环 join 的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速部署ldap服务
- 下一篇: 您收到一封 2019 阿里云峰会 (北京