多线程第一节~进程、线程、

一、计算机的组成以及操作系统

1、中央处理器(CPU):计算机的核心,负责处理一些运算和控制。

CPU===>ALU(算数逻辑单元):负责一些运算,包括:算数运算(加减乘除)、逻辑运算(与或非)、关系运算(大于等于)

                  CU(逻辑控制单元):负责各个逻辑部件的协调工作,充当指挥官的角色

2、主寄存器:存储数据

分为RAM和ROM,RAM:随机存储器,就是所谓的内存;ROM:只读存储器,就是所谓的磁盘

3、IO:各种输入输出设备(鼠标、键盘、显示器、网卡、声卡、显卡等)

4、总线(Bus):计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以分为:数据总线、地址总线、控制总线,分别用来传输数据、数据地和控制信号。

操作系统

操作系统有2个基本功能:1)对普通程序对硬件的访问进行限制,防止硬件被失控的应用程序滥用;

                                              2)向应用程序提供简单一致的机制来控制复杂而又大相径庭的低级硬件设备。

操作系统通过进程、虚拟存储器、文件来实现这两个功能

其中文件是对IO设备的抽象,虚拟存储器是对主存和磁盘IO设备的抽象表示,进程是对处理器、主存、IO设备的抽象表示。

操作系统接管了计算机的所有硬件资源并对硬件控制具有最高的权限,在操作系统执行的程序中,都以进程的方式运行在更低的权限中,由操作系统根据进程的优先级以及进程的运行状况进行统一的调配。

二、进程、线程、协程

1、进程

通俗的可以将进程理解为“正在执行的程序”,进程是操作系统进行资源分配和调度的基本单位,是操作系统的基础。

程序是死的(只是存在于磁盘上的一对代码和指令),进程是活的(会占用CPU、内存、文件资源、IO等)

进程就是程序的运行实体,占据独立的内存。

2、线程

线程是进程的实体,是CPU调度和分派的基本单位,是操作系统能够进行运算调度的最小单位,是最小的资源分配单元。

线程基本上不拥有系统资源,只是拥有在运行中所必需的资源(栈、程序计数器),但是它可以与同属一个进程的其他线程共享进程所拥有的全部资源。线程之间的通信主要靠共享内存。

3、线程与进程之间的关系以及区别

关系:一个进程可以对应多个线程(一对多的关系)

区别:

(1)地址空间:线程是进程内的一个执行单元,一个进程内至少有一个线程,线程共享进程的地址空间,进程有自己的独立地址空间。

(2)资源拥有:进程是资源分配的单位,同一个进程中的线程共享进程的资源。

(3)健壮性:进程与进程之间相互隔离,一个进程奔溃不会影响其他的进程,一个线程奔溃可能导致整个进程崩溃,进程的健壮性要比线程好。

(4)每一个独立的线程都有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不可以独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

4、协程

协程是一种用户态的轻量级线程,又称微线程。协程的调度完全由用户控制,协程调度切换时,将寄存器上下文和栈保存在其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则没有内核切换的开销,可以不加锁的访问全局变量,上下文切换非常快。

5、协程与线程的比较

(1)一个线程可以有多个协程,一个进程也可以有多个协程。

(2)线程机制都是同步的,协程机制是异步的。

(3)协程能够保留上一次调用时的状态,每次过程重入时,就相当于进入了上一次调用的状态。

猜你喜欢

转载自blog.csdn.net/qq_40303781/article/details/85162930