Python中process函数无法打印出子进程内容的问题
我的代码是这样的
from time import sleep from multiprocessing import Process import os m = 1 def task1(a): global m while True: print("任务进行1-------------",m) sleep(a) m += 1 def task2(a): global m while True: sleep(a) print('任务进行2-------------',m) m += 1 if __name__ == '__main__': print(os.getpid()) p1 = Process(target=task1,name='task1111',args=(1,)) # p1.run() p1.start() # print(p1.name) p2 = Process(target=task2,name='task2222',args=(2,)) #target为函数,name起一个名字,args为参数 # p2.run() p2.start()
并且是在pycharm中运行的,但是结果就是
只有主进程中的进程号打印出来,子进程的输出内容完全没有,而且程序还在运行当中,我想应该是有进程但是没打印而已,于是我就用window的cmd运行这个文件看看有没有问题,结果如下
结果居然可以了
网上我看见别人也有同样的问题,也是这样解决,在cmd或者直接输入到文件里面就可以。
具体问题好像是window环境下的问题,没有fork()函数,Linux下应该可以,其实我对这个回答其实也没把握对,后面有机会就用Linux试一下