进程与线程
- 进程是具有一定独立功能的程序,他是系统进行 资源(CPU、内存等)分配 的基本单位;它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。
- 线程是进程的一个实体,是CPU调度和分派的基本单位,线程自己基本不拥有系统资源
进程和线程的联系和区别
联系:
- 一个线程只能属于一个进程,而一个进程可以拥有多个线程
- 资源分配给进程,同一进程的所有线程共享该进程的所有资源
- 线程是指进程内的一个执行单元,也是进程内的可调度实体
区别:(3个方面)
- 调度: 线程作为调度和分配的基本单位;进程作为拥有资源的基本单位
- 并发行:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行
- 拥有资源:进程是拥有资源的独立单位;线程不拥有资源,但可以隶属于进程的资源,共享进程的资源
在OS中引入进程的目的是为了使多个程序能够并发执行,以提高资源利用率和系统吞吐量
在OS中再引入线程,则是为了减少程序在并发执行时所付出的时间开销,是OS具有更好的并发性
引入线程后,进程是分配资源的基本单位,而线程是系统调度的基本单位!
通信
- 进程有独自的资源空间,进程间通信比较麻烦,常见的方式有 管道,消息队列,共享内存,信号,Socket(套接字) 等通信机制
- 线程(同一个进程的线程们)共享该进程的资源,线程间交互通信比较方便,主要的方式有两种:共享对象(全局变量),共享队列(本质是共享内存)
网友评论