multiprocessing多进程(31-04)创建进程的两种方式
生活随笔
收集整理的這篇文章主要介紹了
multiprocessing多进程(31-04)创建进程的两种方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
一個進程可以寄生多個線程。
CPU核數與進程個數是統一的,
若進程多于核數,那么只有等待上一進程執行完才能被執行。
------------------第一種進程創建方式------------------------
from multiprocessing import Processimport time
def A(name):
time.sleep(1)
print('haello', name, time.ctime())
if __name__ == "__main__":
p_list = []
for i in range(3): # 創建三個進程
P = Process(target=A, args=('kay'))
p_list.append(p)
p.start() # 準備進程,讓CPU執行
for p in p_list:
p.join() # 阻塞住,所以進程執行完才執行下面代碼
print('end')
?運行結果:
hello kay Wed Sep 19 10:18:00 2018 hello kay Wed Sep 19 10:18:00 2018 hello kay Wed Sep 19 10:18:00 2018 end---------------------------第二種進程創建方式(類式調用)---------------------------------------
from multiprocessing import Processclass MyProcess(Process): # 繼承Process方法
def __init__(self, name):
super(MyProcess, self).__init__() # 執行子類的__init__方法
self.name = name # 防止執行父類中的方法
def run(self):
time.sleep(1)
print('hello', self.name, time.ctime())
if __name__ == "__main__":
p_list = []
for i in range(3):
?? p = MyProcess('kay')
? p.start()
? p_list.append(p)
for p in p_list:
?? p.join() # 阻塞住
? print('end')
??
運行結果:
hello kay Wed Sep 19 11:38:40 2018
hello kay Wed Sep 19 11:38:40 2018
hello kay Wed Sep 19 11:38:40 2018
end
?
在父類中也有封裝name,如果不重新封裝,會默認執行父類封裝好的,而父類封裝好的name是顯示當前進程號。
?
轉載于:https://www.cnblogs.com/uncle-kay/p/9673828.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的multiprocessing多进程(31-04)创建进程的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: checkVector()
- 下一篇: javascript基本数据类型问题汇总