• 对进程和线程的理解


    进程的三个状态
    就绪、运行、阻塞
    (1) 就绪->执行
    就绪状态是指进程获得了调度程序为之分配的除了CPU时间之外的其他必要资源,只要CPU时间一到位就可执行了。
    处于就绪状态的进程,当进程调度程序为之分配了CPU后,该进程便由就绪状态转变成执行状态。
    (2) 执行->就绪
    处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。
    (3) 执行->阻塞
    正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
    (4) 阻塞->就绪
    处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
    三个状态切换的条件:
    就绪---->执行 调度
    执行----->就绪 时间片到
    执行------>等待 等待某个事件发生而睡眠
    等待------->就绪 因等待事情发生而唤醒
    参考:https://blog.csdn.net/baidu_35534327/article/details/54317945

    线程的五个状态
    创建、就绪、运行、阻塞、死亡

    进程和线程的区别
    操作系统给进程分配资源,一个进程有多个线程,线程共享进程内的资源。
    对于共享变量,进程保存共享变量,每个线程保存变量的副本。
    例子:
    一个软件可以有多个进程,一个进程内有多个线程。
    浏览器有多个进程,打开一个网页就是一个进程,dns解析、请求这些是一个个的线程。
    开个QQ,就是开了一个进程;开了迅雷,也是开了一个进程。在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。
    所以运行某个软件,相当于开了一个进程。在这个软件运行的过程里(在这个进程里),多个工作支撑的完成QQ的运行,那么这“多个工作”分别是一个线程。

    线程崩溃是否会造成进程崩溃
    会。当一个线程向非法地址读取或者写入,无法确认这个操作是否会影响同一进程中的其它线程,所以只能是整个进程一起崩溃。

  • 相关阅读:
    poj2478
    poj2376
    poj2192
    poj1062
    [HDOJ2639]Bone Collector II(第k优01背包)
    [HDOJ3466]Proud Merchants(贪心+01背包)
    [HDOJ5510]Bazinga(并查集)
    [POJ3264]Balanced Lineup(线段树,区间最值差)
    [HDOJ4325]Flowers(树状数组 离散化)
    [HDOJ5521]Meeting(最短路)
  • 原文地址:https://www.cnblogs.com/zeroingToOne/p/9536894.html
Copyright © 2020-2023  润新知