簡體   English   中英

Python多處理啟動方法無法運行該過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM