一.什么是线程
1.线程概念
(1)线程:*有时又称轻量级进程,程序执行的最小单位,系统独立调度和分派CPU的基本单位,它是进程中的一个实体。一个进程中可以有多个线程,这些 线程共享进程的所有资源,线程本身只包含一点必不可少的资源。
(2)系统调度:操作系统里面的相关概念,也叫作时间片轮和轮循。
2.为什么出现线程?
(1)多进程进行时,子进程需要拷贝父进程的资源,还需要创建管道、信号量等,比较麻烦。
(2)进程出现了很多弊端,一是由于进程是资源拥有者,创建、散消与切换存在较大的时空开销,因此需要引入轻型进程!二是由于对称多处理机(SMP)出现,可以满足多个运行单位,而多个进程并行开销过大。
二. 关于线程的一些术语
1.并发
并发是指在同一时刻,只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。看起来同时发生,针对单核处理器的概念。
2.并行
并行是指在同一时刻,有多条指令在多个处理器上同时执行。真正的同时发生,针对多核处理器。
3.同步
同步指彼此有依赖关系的调用不应该“同时发生”,而同步就是要阻止那些“同时发生”的事情。
4.异步
异步的概念和同步相对,任何两个彼此独立的操作是异步的,它表明事情独立的发生。
三.多进程的优势
1、在多处理器中开发程序的并行性
2、在等待慢速IO操作时,程序可以执行其他操作,提高并发性
3、模块化的编程,能更清晰的表达程序中独立事件的关系,结构清晰
4、占用较少的系统资源(相对于多进程来说的,因为是共享资源)
注意:多线程不一定要多处理器