[英]Python multiprocessing start method doesn't run the process
我是多處理的新手,我正在嘗試檢查是否可以使用以下代碼同時運行兩個進程:
import random, time, multiprocessing as mp
def printer():
"""print function"""
z = random.randit(0,60)
for i in range(5):
print z
wait = 0.2
wait += random.randint(1,60)/100
time.sleep(wait)
return
if __name__ == '__main__':
p1 = mp.Process(target=printer)
p2 = mp.Process(target=printer)
p1.start()
p2.start()
盡管我通過is.alive()方法檢查了該進程是否在運行,但是該代碼在控制台上沒有顯示任何內容。
但是,我可以使用打印一些內容:
p1.run()
p2.run()
問題1:為什么start()方法不能運行該進程?
問題2:在使用run()方法運行代碼時,為什么會得到類似的序列
25,25,25,25,25,11,11,11,11,11
而不是像
25,25,11,25,11,11,11,25,11,25嗎?
似乎該過程一個接一個地運行。
我想使用多重處理在多個文件上使用相同的功能來並行化文件轉換。
我通過添加來使腳本運行
from multiprocessing import Process
但是,我沒有兩個數字的隨機序列,模式始終是A,B,A,B。如果您知道如何顯示兩個過程同時運行,歡迎提出任何想法!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.