【问题标题】:multiprocessing.Process does not initiate the parallel run of functions by start()multiprocessing.Process 不会通过 start() 启动函数的并行运行
【发布时间】:2011-10-17 06:52:48
【问题描述】:

我不明白如何开始使用multiprocessing.Process。我使用了以下示例代码:

import random, time
import multiprocessing

def frz(no, tm):
    a = 'start ' + str(no)
    print(a)
    time.sleep(tm)
    a = str(no) + '=====> '+ str(tm) +'\n'
    print(a)

if __name__ == '__main__':
    freeze1 = random.randint(1, 5)
    freeze2 = random.randint(1, 5)
    freeze3 = random.randint(1, 5)
    freeze4 = random.randint(1, 5)
    freeze5 = random.randint(1, 5)

    trd1 = multiprocessing.Process(target=frz, args=(1, freeze1))
    trd2 = multiprocessing.Process(target=frz, args=(2, freeze2))
    trd3 = multiprocessing.Process(target=frz, args=(3, freeze3))
    trd4 = multiprocessing.Process(target=frz, args=(4, freeze4))
    trd5 = multiprocessing.Process(target=frz, args=(5, freeze5))

    #threading
    trd1.start()
    trd2.start()
    trd3.start()
    trd4.start()
    trd5.start()

multiprocessing.Processthreading.Thread 替换时,该函数工作正常,但多处理似乎没有任何反应。

【问题讨论】:

  • 我有同样的问题,我在同一个网站上发布了一个类似的问题here

标签: process python-3.x parallel-processing multiprocessing simultaneous


【解决方案1】:

当我运行你的代码时,我看到的是:

开始 5 开始 4 开始 3 开始 2 开始 1 2=====> 1 5=====> 3 3=====> 3 4=====> 4 1=====> 5

这是你所期待的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 2011-04-25
    • 2018-01-11
    • 2022-06-15
    • 2022-11-15
    相关资源
    最近更新 更多