进程与线程之间的关系

本文详细介绍了进程与线程的概念、来历及其相互关系。进程是资源分配的基本单位,线程是CPU调度的基本单位,两者共享进程的地址空间。线程的引入减少了上下文切换的开销,提高了程序执行效率。在Linux系统中,进程和线程有着明确的区别,线程更轻量级,允许在同一进程内实现并行执行不同任务。
摘要由CSDN通过智能技术生成

1、前言

      前段时间没事跑到北京去应聘,HR和我聊得很high,给我描述了来公司后的宏伟蓝图,一顿神游;到技术面时来了两个小崽子,一顿算法和数据结构,没有准备的我狼狈不堪,完事,HR很疑惑地问我,怎么技术那边说你技术不是很强,这是怎么回事?我估计HR是不是心里在嘀咕,这人不是个大忽悠吧,浪费我那么多吐沫星子!回来痛定思痛,还是埋头补课吧。本文是网上有关资料的基础上整理归纳的。

 

2、来历

 

(1)下面细说背景

 

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

(2)一个最最基础的事实

       CPU太快,太快,太快了,寄存器仅仅能够追的上他的脚步,RAM和别的挂在各总线上的设备完全是望其项背。那当多个任务要执行的时候怎么办呢?轮流着来?或者谁优先级高谁来?不管怎么样的策略,一句话就是在CPU看来就是轮流着来。   

(3)一个必须知道的事实:

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

(4)串联起来的事实:

       前面讲过在CPU看来所有的任务都是一个一个的轮流执行的,具体的轮流方法就是:先加载程序A的上下文,然后开始执行A,保存程序A的上下文,调入下一个要执行的程序B的程序上下文,然后开始执行B,保存程序B的上下文......

    得益于CPU的计算速度,我们可以“同时”运行多个任务,实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值