• 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()方法实现并发下的串行的效果
  • 相关阅读:
    配置ssh免密登录
    idea打开项目定位到选择项目的位置
    MySQL decimal、numeric数据类型介绍
    C++ string::size_type类型
    Java Oracle存储过程问题
    PLSQL Developer简单使用教程
    ed2k如何下载
    老毛桃U盘启动盘制作工具安装教程
    Hibernate current_session_context_class的事务说明
    java openSession和getCurrentSession的比较
  • 原文地址:https://www.cnblogs.com/zhouyi0316/p/9592334.html
Copyright © 2020-2023  润新知