Windows环境下Python的多处理

Windows环境下Python的多处理,python,windows,Python,Windows,我正在尝试python文档中列出的示例 尤其是Windows上的这两个: (一) (二) 问题是:我没有从子进程获得任何输出。但它在Linux上工作。发生了什么?示例1运行良好(我希望您将程序保存在一个文件中,然后执行它,否则它将无法识别函数f) 如果您想要父进程的id,示例2将不起作用。windows中没有getppid 只需使用print os.getppid并执行,它将一如既往地精彩 有关详细信息,请参见此,我建议您执行异常处理。这会让我们更清楚!除了父进程中的os.getppid之外,我

我正在尝试python文档中列出的示例 尤其是Windows上的这两个:

(一)

(二)

问题是:我没有从子进程获得任何输出。但它在Linux上工作。发生了什么?

示例1运行良好(我希望您将程序保存在一个文件中,然后执行它,否则它将无法识别函数f)

如果您想要父进程的id,示例2将不起作用。windows中没有getppid

只需使用print os.getppid并执行,它将一如既往地精彩


有关详细信息,请参见此,我建议您执行异常处理。这会让我们更清楚!除了父进程中的os.getppid之外,我没有任何异常。如果我删除它,我只会得到父对象的输出,而子对象什么也不打印。我将它保存在一个文件中。你有哪个版本的Python?2.6.5。但这并不重要,除非你的版本不是2.6或更高版本。因为它是2.6Lucky的更新版本,我们为您准备了Doug!
from multiprocessing import Process

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

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()
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()