进程与线程主要有四个方面的区别:拥有资源、调度、系统开销、并发性。 ①拥有资源:不管操作系统中,引进或没有引进线程概念,进程都是拥有资源的基本单位; 引进线程的操作系统中,线程不拥有系统资源,只拥有少量必不可少的资源,但可以访问隶属进程的资源 ②调度:传统OS中,进程是独立调度的基本单位; 引入线程的操作系统中,线程是独立调度的基本单位 ③系统开销:在创建、切换、调度等方面进程的系统开销明显大于线程的开销 ④并发性:引入线程的OS中,不仅进程之间可以并发执行,同一进程中线程之间也可以并发执行,因而提高了系统的并发性
线程是操作系统能够进行运算调度的最小单位
进程是资源分配的最小单位
一个进程可以有多个线程,每个线程并行执行不同的任务
进程和线程都是cpu的一个工作时间段的描述,不过两者的颗粒大小不同。
比如:cpu执行程序A = 加载程序A的上下文+执行A+保存A的上下文------>转到程序B的执行
在这个执行中,进程的执行=CPU加载上下文+CPU执行+CPU保存上下文,而线程就是进程中的一个个小段
线程在进程下执行
一个进程包含多个线程
不同进程间数据很难共享,但是同一进程的不同线程之间可以共享数据
进程间互不影响,但是一个线程失败会导致整个进程失败,所以多进程的程序比多线程的程序更健壮
进程有自己独立的地址空间,线程没有独立的地址空间