多线程编程中的几个基本概念
想要更好的进行多进程和多线程编程,建议先了解几个概念。
一.概念点
1.进程是什么
2.进程概念的引入
3.线程是什么
4.线程概念的引入
5.引入线程的好处
二.详细介绍
1.进程是什么
想要搞懂进程的概念,首先要搞懂程序的概念,程序是什么呢?
程序,是指令和数据的一个集合,是静态概念,可长期存储。
进程,是程序在一个数据集合上的运行过程,是个动态的概念。
两者什么关系呢?
一个程序可以对应多个进程或单个进程。
一个进程可以对应一个程序或一段程序。
它的组成是什么呢?
包括程序,数据集合及进程控制块(PCB)
CPU对进程的调度,切换,管理等都是通过PCB来完成
举例:
如进程A切换到进程B,进过一下步骤:
1.保护进程A的现场
即将进程A的当前运行信息保存到进程A的PCB中,保存点包括:程序执行的当前位置,程序状态
字,所有寄存器的值等
2.恢复进程B的现场
即从进程B的PCB中获取其执行信息,将这些信息写入到相应的寄存器,程序计数器等中。
2.进程概念的引入
在早期的计算机系统中,程序的运行是分道进行的,每次只能运行一道程序,即内存中一次只能装入
一道程序。因此每运行一个程序,系统中的所有资源都被该程序占用,即其控制了操作系统的所有资源。
在现代计算机系统中,内存中通常可同时存放多道程序,程序在计算机系统中并发执行,为了描述程序并
发执行的特征,引入了进程的概念。
概括来说,为了提高系统资源利用率(CPU,内存等是不是得到充分利用)和吞吐量(单位时间内CPU能处理
的作业的个数),让多个程序并发执行,为了区分这些并发执行的程序及便于协调管理,引入了进程的概念
进程是独立申请资源的基本单位。
一句话,为了让CPU能同时运行多个程序,引入进程的概念
3.线程是什么
线程(thread, 台湾称 执行绪)是"进程"中某个单一顺序的控制流。也被称为轻量进程(lightweight pro
cesses)。计算机科学术语,指运行中的程序的基本调度单位。
资源拥有者仍然是进程。
4.线程概念的引入
同引入进程的概念类似,引入线程的目的是让一个进程能同时运行多个控制流或多个程序。
如下图表示单进程中的单线程和单进程中的多线程
5.引入线程的好处
1.创建一个新线程花费少
2.切换线程花费少,如果两个线程同属于一个进程的话,共享内存和文件