zoukankan      html  css  js  c++  java
  • 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模式下,父进程和子进程都是用的一个空间,不用等另外三个子进程

      运行完成之后再把要输出的东西放在输出流里面,就可以直接输出出来,所以

      输出的时候会直接弹出来,而不用等待一会

    •  

       生命不息
       希望不止
       将来的你
       一定会感谢现在拼命的自己
       fighting!!!
  • 相关阅读:
    POJ 1811 Prime Test (Rabin-Miller强伪素数测试 和Pollard-rho 因数分解)
    POJ 1200 Crazy Search (哈希)
    POJ 1061 青蛙的约会 (扩展欧几里得算法)
    POJ 1035 Spell checker (模拟)
    hud 2554 N对数的排列问题 (规律)
    HDU 2522 A simple problem (模拟)
    Python环境配置及项目建立
    IDEA通过MyBatis generator生成数据库表的对象
    复制、粘贴、剪切 操作
    下载歌曲(以QQ音乐为例)
  • 原文地址:https://www.cnblogs.com/lonelyshy/p/9693737.html
Copyright © 2011-2022 走看看