按照教程写的代码:
from multiprocessing import Process
import os, time
def run_proc(name):
print('Run child process %s (%s)...' % (name, os.getpid()))
if __name__ == '__main__':
print('Parent process %s.' % os.getpid())
p = Process(target=run_proc, args=('test',))
print('Child process will start.')
p.start()
p.join()
print('Child process end.')
time.sleep(5)
这个在IDLE执行结果如下:
Parent process 11896.
Child process will start.
Child process end.
run_proc里面那句死活不打印,在命令行执行就可以显示子进程,为什么?
如果这样的话,是不是意味着以后写多进程的程序一定要在控制台运行而不能用编译器运行?
我用pycharm运行时没有问题的,你试试重新创建一个文件在运行?
纠正你的一个错误,命令行运行其实是使用python的解释器,官网的为cpython,cpython版本很多,常用的py2.7和3.6,还有jpython等等,python没有编译器,一般c和c#才有编译器,pycharm是编辑器,集成的开发环境
所以你说的在什么执行代码其实最后都是使用python解释器,输出情况的不同大概是编辑器的问题,建议按我的方法试试