multiprocessing.Process не запускает параллельный запуск функций при запуске () - PullRequest
0 голосов
/ 17 октября 2011

Я не понимаю, как начать 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.Process заменяется на threading.Thread, функция работает нормально, но при многопроцессорной обработке, похоже, ничего не происходит.

1 Ответ

0 голосов
/ 17 ноября 2011

Когда я запустил ваш код, вот что я увидел:

start 5
start 4
start 3
start 2
start 1
2=====> 1

5=====> 3
3=====> 3


4=====> 4

1=====> 5

Это то, что вы ожидали?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...