zoukankan      html  css  js  c++  java
  • pythonNet 04多进程

    fork注意:
    *进入阻塞态的进程一定会让出cpu时间片
    *各个进程在自己空间内对数据的操作不影响其他进程
    *父进程在执行fork之前开辟的空间子进程也会复制

    进程相关函数

    os.getpid()
    功能获取当前进程的PID号
    返回值:返回当前进程的PID

    os.getppid()
    功能;获取父进程的PID号
    返回值:返回父进程PID

    os._exit(status)
    功能:退出程序
    参数:整数 表示自定义的进程退出状态标识

    sys.exit([status])
    功能:退出进程
    参数:整数 表示退出状态 默认为0
            传一个字符串,则退出时会打印该字符串


    孤儿进程和僵尸进程

    孤儿进程;父进程先于子进程退出,则子进程成为孤儿进程

    *孤儿进程会被系统进程收养,此时系统进程就好成为该进程父进程

    僵尸进程:子进程先于父进程退出,父进程没有处理子进程退出状态,此时子进程就会成为僵尸进程

    *僵尸进程虽然结束但是会存留部分PCB在内存,大量的僵尸进程会占用内存资源


    如何避免僵尸进程产生
        *处理自己成退出状态
        pid,status =os.wait()
        功能;在父进程中阻塞等待子进程退出
        返回值:pid 退出的子进程的PID
                status 子进程退出状态


        pid,status =os.waitpid(pid,option)
        功能;在父进程中等待子进程退出
        参数:pid -1 表示等待任意子进程
                 >0 表示等待指定PID的子进程退出
              option 0表示阻塞等待
                    WNOHANG 表示非阻塞
        返回值:pid 退出的子进程的PID
                status 子进程的退出状态

        创建二级子进程
        1.父进程创建子进程等待子进程退出
        2.子进程创建二级子进程然后退出
        3.二级子进程成为孤儿,和原来父进程各自执行任务

     

     

  • 相关阅读:
    【linux]】lighttpd的日志格式
    【vi】awk为指定行的指定字段添加一个单词
    【Android】命令行操作-启动应用程序
    CCS设置第一个li的元素与其他li样式不同
    nginx+tomcat 下POST响应参数过大无法显示完整及文件下载服务遇到过大文件无法下载解决办法
    有重复行,查询时只保留最新一行的sql
    Android定时执行和停止某任务
    MySQL每天自动增加分区
    <html:option获取文本值
    easyui datagrid 增删改查示例
  • 原文地址:https://www.cnblogs.com/sky-ai/p/9812973.html
Copyright © 2011-2022 走看看