python 多进程和子进程1
Posted lonelyshy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 多进程和子进程1相关的知识,希望对你有一定的参考价值。
1 #多进程 process.py 2 from multiprocessing import Process,current_process 3 import time 4 def func1(): 5 print(‘ahhahaah func1‘) 6 time.sleep(10)#睡眠10s 7 ? 8 def func2(): 9 print(‘heiheihei func2‘) 10 time.sleep(10)#睡眠10s 11 ? 12 def func3(): 13 print(‘lalalalll func3‘) 14 time.sleep(10)#睡眠10s 15 def main(): 16 17 p1 = Process(target = func1,name = ‘func 1 ‘)#这里就当新打开了页面执行函数 18 p2 = Process(target = func2,name = ‘func 2 ‘)#这里就当新打开了页面执行函数 19 p3 = Process(target = func3,name = ‘func 3 ‘)#这里就当新打开了页面执行函数 20 list1 = [p1,p2,p3] 21 print(‘这是 主进程 ‘) 22 for a in list1: 23 a.start() 24 ? 25 if __name__ == ‘__main__‘: 26 main() 27 ? 28 ? 29
主进程会创建子进程 但是他们输出不会输出在一起
-
举个例子 比如说 我在父进程开启了3个子进程 那三个子进程
就当做打开了三个运行界面运行,然后输出结果不会在一起的
因为他们加上父进程一共是4个窗口在运行
那为什么在sublime text下 会延迟输出 而在cmd模式下会直接输出呢
-
因为sublime会有自己的缓冲区,我们数据输入输出都是有一个缓冲区的
就像c语言里面有输入输出流一样,sublime里面就是,它另外三个子进程
输出完成之后会放在输出缓冲区里面,然后输出在父进程的输出界面,所以
会延迟输出,这是编译器导致的结果,正常情况下是看不到子进程的输出
结果的
-
而cmd模式下,父进程和子进程都是用的一个空间,不用等另外三个子进程
运行完成之后再把要输出的东西放在输出流里面,就可以直接输出出来,所以
输出的时候会直接弹出来,而不用等待一会
-
以上是关于python 多进程和子进程1的主要内容,如果未能解决你的问题,请参考以下文章