码迷,mamicode.com
首页 > 编程语言 > 详细

python 多进程和子进程1

时间:2018-09-23 22:29:50      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:有一个   fun   情况   item   语言   import   line   targe   c语言   

多进程的缓冲区

 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

标签:有一个   fun   情况   item   语言   import   line   targe   c语言   

原文地址:https://www.cnblogs.com/lonelyshy/p/9693737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!