Python 多处理don';开始

Python 多处理don';开始,python,multiprocessing,Python,Multiprocessing,我今天刚开始学习多处理模块,我尝试了这段代码,但它不起作用,我不知道为什么它没有给我任何错误或任何东西它只是正常结束程序,没有打印任何东西这是我的简单代码: import multiprocessing def x (): print ("hi") example=multiprocessing.Process(target=x) example.start() 当我这样做时,它会起作用: import multiprocessing def x (): print ("hi

我今天刚开始学习多处理模块,我尝试了这段代码,但它不起作用,我不知道为什么它没有给我任何错误或任何东西它只是正常结束程序,没有打印任何东西这是我的简单代码:

import multiprocessing
def x ():
    print ("hi")
example=multiprocessing.Process(target=x)
example.start() 
当我这样做时,它会起作用:

import multiprocessing
def x ():
    print ("hi")
example=multiprocessing.Process(target=x())
但是这样对我来说没有用,因为我需要使用
join()
start()


我使用的是python 3.5.2

嗯,您仍然可以使用
start
join

import multiprocessing
def x ():
    print ("hi")
example=multiprocessing.Process(target=x)
example.start() # START
example.join() # JOIN
在python repl中运行,我得到

>>> import multiprocessing
>>> def x ():
...     print ("hi")
... 
>>> example=multiprocessing.Process(target=x)
>>> example.start(); example.join()
hi
>>>
第二个示例似乎有效的唯一原因是您正在调用
x
(注意
target=x()
vs
target=x


您的第一个示例可以工作,但没有
join
,程序在main完成后(但在子进程完成之前)终止。这会创建一个僵尸进程,可能会阻止它做更多的工作,比如将
hi
打印到标准输出

如果添加
example.join()它只是正常结束程序,没有任何打印我没有收到任何错误它只是结束程序,没有任何错误或任何打印你在什么操作系统上?如果在主进程中运行
x
,那么这里就没有
if-uuuuuuuuu name\uuuuuu=='\uuuuuuu main\uuuuuu'
保护,不是你创造的新的。只要cod对你有效,那么我想我的电脑有问题了。谢谢,我将寻找更多的答案,直到明天,如果对我无效,那么我的电脑肯定有问题