线程与进程的深入理解

CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS,等等外设)构成我们的电脑,但是电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情。

  

     CPU的速度相当非常快,寄存器仅仅能追上他的脚步,RAM和别的挂在个总线上的设备完全是望其项背。那当多个任务要执行的时候怎么办呢?轮着来?或者优先级高谁来?

不管怎么样的策略,一句话就是在CPU看来就是轮着来的

     执行一段程序代码,实现一个功能的过程:

     当得到CPU的时候,相关的资源必须就位,就是显卡啊,GPS啊什么的必须就位,然后CPU开始执行。这里除了CPU以外所有的就构成了程序的执行环境,也就是我们所定义的程序上下文。当这个程序执行完了,或者分配给他的CPU执行时间用完了,那么它就要被切换出去,等待下一次CPU的临幸。在被切换出去的最后一步工作就是保存程序上下文本,因为这个是下次他被临幸的运行环境,必须保存。

      在CPU看来所有的任务都是一个一个的轮流执行的,具体的轮流方法就是:

       先加载程序A的上下文,然后开始执行A,保存A的上下文,调入下一个要执行的程序B的程序上下文,然后开始执行B,保存程序B的上下文。

      

      进程和线程就是在这样的背景下出来的,两个名词不过是对应的CPU时间段的描述。

      进程就是包括上下文切换的程序执行时间总和 = CPU加载上下文+CPU执行+CPU保存上下文

      

 

这里加深概念:

我们可以通过杀死电脑进程,来结束程序。

我们

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览