基本概念:
程序:一段代码段
数据集:数据的集合
进程控制块:管理代码在数据集合执行的控制信息(PCB:标识、说明、现场、管理信息)
进程:一个程序在一个数据集的一次执行叫一个进程!
线程:把一个进行中可以并发执行的各部分分别叫做线程。线程是进程中可独立执行的子任务。
线程属性:唯一的标识符和线程描述表
多进程的缺点:
每个进程占用的程序和进行控制块,开销大,不能共享!
进程之间传递信息需要通信机制,速度慢
进程多需要调度,增加了调度和控制的复杂度
线程之间可以共享本进程的所有资源,并且之间的通信机制效率要高(在同一个进程之中)
由此产生了线程。
多线程的优点:
减少了进程(个人理解,之前我们需要增加一个处理进程,现在我们只需要在一个进程里面来创建处理线程,来实现功能,这样就大大提高了性能,因为没建立一个进程需要分配进程控制块和工作区(数据集))
线程描述表代替了进程的进程控制块,较之创建速度快
线程间的通讯更加快,因为都在一个进程下面呢!
线程可独立执行,更能发挥处理器和外围设备的并行工作能力!
二者区别的总结:
线程是轻量级的进程!
根本区别:把进行作为资源分配单位,而线程是调度和执行单位
每个进程都有自己的主存空间,但线程可共享该进程的主存空间!
说到这里,就是我对进程和线程的理解!没有举例说明,担心例子给大家造成混淆!
进程和线程是对程序和数据集作用范围不同致使作用不同来划分的!没有本质的区别!