进程的基本概念
概念
进程就是一个程序在一个数据集上的一次动态执行过程。 进程通常由程序、数据集、进程控制块三部分组成。咱们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程当中所须要使用的资源;进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统能够利用它来控制和管理进程,它是系统感知进程存在的惟一标志。并发
线程的基本概念
概念
线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程本身不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的所有资源。一个线程能够建立和撤消另外一个线程,同一进程中的多个线程之间能够并发执行。ide
好处高并发
- 易于调度。
- 提升并发性,经过线程可方便有效地实现并发性。进程可建立多个线程来执行同一程序的不一样部分。
- 开销少,建立线程比建立进程要快,所需开销不多
进程的基本状态及状态之间的关系
状态:运行、阻塞、挂起阻塞、就绪、挂起就绪线程
状态之间的转换:代理
- 准备就绪的进程,被CPU调度执行,变成运行态;
- 运行中的进程,进行I/O请求或者不能获得所请求的资源,变成阻塞态;
- 运行中的进程,进程执行完毕(或时间片已到),变成就绪态;
- 将阻塞态的进程挂起,变成挂起阻塞态,当致使进程阻塞的I/O操做在用户重启进程前完成(称之为唤醒),挂起阻塞态变成挂起就绪态,当用户在I/O操做结束以前重启进程,挂起阻塞态变成阻塞态;
- 将就绪(或运行)中的进程挂起,变成挂起就绪态,当该进程恢复以后,挂起就绪态变成就绪态;
进程和线程的关系:
- 一个线程只能属于一个进程,而一个进程能够有多个线程,但至少有一个线程。
- 资源分配给进程,同一进程的全部线程共享该进程的全部资源。
- 处理机分给线程,即真正在处理机上运行的是线程
- 线程在执行过程当中,须要协做同步。不一样进程的线程间要利用消息通讯的办法实现同步。线程是指进程内的一个执行单元,也是进程内的可调度实体.
###进程与线程的区别:进程
-
运行方式不一样内存
- 进程不能单独执行,它只是资源的集合。
- 进程要操做CPU,必需要先建立一个线程。
- 全部在同一个进程里的线程,是同享同一块进程所占的内存空间。
-
关系资源
- 进程中第一个线程是主线程,主线程能够建立其余线程;其余线程也能够建立线程;线程之间是平等的。
- 进程有父进程和子进程,独立的内存空间,惟一的标识符:pid。
-
速度同步
- 启动线程比启动进程快
- 运行线程和运行进程速度上是同样的,没有可比性
- 线程共享内存空间,进程的内存是独立的。
-
建立it
- 父进程生成子进程,至关于复制一分内存空间,进程之间不能直接访问
- 建立新线程很简单,建立新进程须要对父进程进行一次复制
- 一个线程能够控制和操做同级线程里的其余线程,可是进程只能操做子进程。
-
交互
- 同一个进程里的线程之间能够直接访问。
- 两个进程想通讯必须经过一个中间代理来实现。
- 调度
- 线程做为调度和分配的基本单位,进程做为拥有资源的基本单位
- 并发性
- 不只进程之间能够并发执行,同一个进程的多个线程之间也可并发执行
- 拥有资源:
- 进程是拥有资源的一个独立单位,线程不拥有系统资源,但能够访问隶属于进程的资源.
- 系统开销:
- 在建立或撤消进程时,因为系统都要为之分配和回收资源,致使系统的开销明显大于建立或撤消线程时的开销。