zoukankan      html  css  js  c++  java
  • python全栈脱产第34天------开启进程的两种方式、join方法、进程对象其他相关的属性和方法、僵尸进程、孤儿进程、守护进程、互斥锁

    一、开启进程的两种方式

      方式一:

    from multiprocessing import Process
    import time

    def task(name):
    print('%s is running' %name)
    time.sleep(3)
    print('%s is done' %name)

    # 在windows系统上,开启子进程的操作必须放到if __name__ == '__main__'的子代码中
    if __name__ == '__main__':
    p=Process(target=task,args=('egon',)) #Process(target=task,kwargs={'name':'egon'})
    p.start() # 只是向操作系统发送了一个开启子进程的信号
    print('主')
      方式二:
    from multiprocessing import Process
    import time

    class Myprocess(Process):
    def __init__(self,name):
    super().__init__()
    self.name=name

    def run(self):
    print('%s is running' %self.name)
    time.sleep(3)
    print('%s is done' %self.name)

    # 在windows系统上,开启子进程的操作必须放到if __name__ == '__main__'的子代码中
    if __name__ == '__main__':
    p=Myprocess('egon')
    p.start() # 只是向操作系统发送了一个开启子进程的信号
    print('主')
    二、join方法
      让主进程在原地等待,等待子进程运行完毕,不会影响子进程的执行
    三、进程对象相关属性
      进程pid:每一个进程在操作系统内都有一个唯一的id号,称之为pid
    四、僵尸进程和孤儿进程
      僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。
      孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
    五、守护进程:本质就是一个'子进程',该'子进程'的生命周期<=被守护进程的生命周期
    六、互斥锁
      用mutex.acquire()方法实现并发下的串行的效果
  • 相关阅读:
    Object-C(自学1)
    在vue-cli@3.X中配置代理解决开发环境的跨域问题
    记一次发布/更新npm包的过程及包版本管理
    MAC OS上开启Nginx静态文件服务器
    vuecli3打包部署 非根目录下 配置vue.config.js publicPath
    使用Anywhere开启一个nodejs静态文件服务器
    搭建node服务端并使用express()创建简单数据接口,最后返回前端请求的所需数据
    对正反向代理对理解
    Mac查看Python安装路径和版本
    onBlur方法在iOS和Android平台上的差异
  • 原文地址:https://www.cnblogs.com/zhouyi0316/p/9592334.html
Copyright © 2011-2022 走看看