• C++学习笔记41:进程调度


    进程调度策略:先进先出,时间片轮转,普通调度,批调度,高优先级抢先

      子进程与父进程的调度没有固定的顺序;不能假设子进程一定会在父进程之后执行,也不能假设子进程一定会在父进程之前执行;

    僵尸进程

    • 子进程已结束,但父进程未被调用wait()函数等待
    • 子进程已终止,但没有被正确清除,成为僵尸进程

    清除子进程的手段

    • 父进程调用wait()函数可确保子进程被清除
    • 即使子进程在父进程调用wait()函数前已死亡(成为僵尸),其退出状态也可以被抽取出来,然后被清除
    • 未清除的子进程自动被init进程收养
    #include <stdlib.h>
    #include <sys/types.h>
    #include <unistd.h>
    
    int main()
    {
        pid_t child_pid;
        child_pid = fork();
        if (child_pid > 0)   //父进程,速度睡眠六十秒
            sleep(60);        
        else                 //子进程,立即退出
            exit(0);
        return  0;
    }
    怕什么真理无穷,进一寸有一寸的欢喜。---胡适
  • 相关阅读:
    并查集
    关于一些位运算的小记
    用ST解决RMQ问题
    寒假作业_4
    H
    卢卡斯 组合数
    并查集
    G
    F
    E
  • 原文地址:https://www.cnblogs.com/hujianglang/p/6275328.html
Copyright © 2020-2023  润新知