一、线程引入
os引入进程的目的是:使多个程序能并发执行,以提高资源利用率和系统吞吐量
os引入线程对的目的是:是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性
进程的两个基本属性:1、是一个可独立拥有资源的单位 2、是一个可独立调度和分配的单位。
线程的属性:作为调度和分配的基本单位。
二、进程和线程的区别
1、一个进程里可以包含多个线程,线程是比进程更小的单位
2、 进程是系统分配资源的基本单位,线程是CPU调度的基本单位,进程是程序的一次执行,线程是CPU调度的一次执行
3、进程之间都有自己独立的内存区域,因此进程之间存在通信问题。而线程是共享一组内存区域和资源,因此有可能存在多个线程去读取同个数据出现不一样的情况,因此保证进程之间的同步很重要。
4、线程基本上不拥有资源,只拥有一点在运行中必不可少的资源:寄存器,栈,程序计数器,所以线程在进行切换时消耗远远低于进程。而且线程之间能共享他们之间拥有的所有资源
三、多线程
多线程:指的是在一个进程中有多个线程
多线程编程的目的:充分利用CPU资源,当一个线程进行I/O操作时,可以调用另外一个线程