Многопроцессорность в Python под Windows - PullRequest
3 голосов
/ 27 декабря 2011

Я пробую примеры, перечисленные в документации по питону http://docs.python.org/library/multiprocessing.html, особенно эти два в Windows:

1)

from multiprocessing import Process

def f(name):
    print 'hello', name

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

2)

from multiprocessing import Process
import os

def info(title):
    print title
    print 'module name:', __name__
    print 'parent process:', os.getppid()
    print 'process id:', os.getpid()

def f(name):
    info('function f')
    print 'hello', name

if __name__ == '__main__':
    info('main line')
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

Вот проблема: я не получаю вывод от дочернего процесса.Это работает на Linux, хотя.Что происходит?

1 Ответ

1 голос
/ 27 декабря 2011

пример 1 работает хорошо. (Я надеюсь, что вы сохранили программу в файле, а затем выполнили ее, иначе она вообще не распознает функцию f).

пример 2 не будет работать, если вы хотите идентификатор родительского процесса. В Windows нет getppid.

Просто возьмите отпечаток os.getppid и выполните его, как никогда!

Пожалуйста, ознакомьтесь с этим подробнее Даг

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