zoukankan      html  css  js  c++  java
  • 学习总结(三十二)

    1.多进程

            1)什么是多进程

                    一个正在运行的程序就是进程,是程序执行具体过程的一种表现,一个程序多次执行,就会产生多个进程,但是进程之间相互独立

    2.阻塞 非阻塞 并行 并发

            1)阻塞:程序遇到io操作就会进入阻塞状态

                    本地IO input print sleep read write

                    网络IO recv send

            2)非阻塞:程序正常运行中没有任何的IO操作,就处于非阻塞状态

            3)并发:多个任务看起来同时在处理,本质上是切换执行,速度非常快

            4)并行:多个任务真正的同时执行,必须具备多核cpu才能并行

             阻塞 非阻塞 说的程序运行的状态

             并发 并行 说的是任务的处理方式

     

    3.进程的两种使用方式

    第一种方式

    from multiprocessing import Process
    import os
    
    def task():
        print("子进程run")
        print(os.getpid())
    
    
    if __name__ == '__main__':
        print(os.getpid())
        p=Process(target=task,args=("xiecheng"))
        p.start()
    
        print("任务结束")
    

      

    第二种方式

    class myProcess(Process):
        def __init__(self,name):
            super().__init__()
            self.name=name
    
        def run(self):
            print(self.name)
            print("子进程 %s running!" % os.getpid())
            print("子进程%s over!" % os.getpid())
            # return  self.name
    if __name__ == '__main__':
        p=myProcess("xiecheng").run()
    
        print(p,"父进程over")
    

      

     

     4.常用属性

    # p.join() # 等待子进程结束
    # p.terminate()  # 终止进程
    # print(p.name)  # 进程的名称
    # print(p.is_alive()) #是否存活
    # p.terminate() # 与start一样 都是给操作系统发送指令 所以会有延迟
    # print(p.exitcode) # 获取退出码
    

      

    5.僵尸与孤儿进程

     

         1) 孤儿进程

                       指的是,父进程先结束 ,而子进程还在运行着,

                       孤儿进程无害,有 其存在的必要性

                       例如:qq开启了浏览器,qq先退出了 浏览器应该继续运行

                       孤儿进程会被操作系统接管

          2)僵尸进程

                      值得是,子进程已经结束了,但是操作系统会保存一些进程信息,如PID,运行时间等,此时这个进程就称之为僵尸进程

                      僵尸进程如果太多将会占用大量的资源,造成系统无法开启新新进程

                      linux 中有一个wai/waitpid 用于父进程回收子进程资源

                     python会自动回收僵尸进程

          

  • 相关阅读:
    GitHub常用 库
    App性能优化
    iOS App性能优化
    UIButton图片与文字位置调整
    Mac常用目录
    js数字转金额,ajax调用接口,后台返回html(完整页面),打开新窗口并写入html
    js坑 把数字型的字符串默认为数字 把前面的0给去掉了("001")
    url跳转路径参数获取
    常用正则表达式,手机号,邮箱,网址
    Js获取操作系统版本 && 获得浏览器版本
  • 原文地址:https://www.cnblogs.com/xzcvblogs/p/10957560.html
Copyright © 2011-2022 走看看