美文网首页计算机操作系统
进程与线程的区别

进程与线程的区别

作者: NetCedar | 来源:发表于2018-10-24 11:03 被阅读0次

进程与线程的区别
    进程:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位(具有动态、并发、独立、异步的特性,以及就绪、执行、阻塞3种状态);引入进程是为了使多个程序可以并发的执行,以提高系统的资源利用率和吞吐量。
    线程:是比进程更小的可独立运行的基本单位,可以看做是轻量级的进程(具有轻型实体,独立调度分派单位,可并发执行,共享进程资源等属性);引入目的是为了减少程序在并发执行过程中的开销,使OS的并发效率更高。

两者的对比:
    并发性:,进程间可以并发,而且一个进程内部的多个线程之间也是可以并发的,,有效的提高了系统资源利用率和吞吐量。
    拥有资源:线程,进程都是基本的资源拥有单位,线程只拥有很少的基本的资源,但是线程可以访问所隶属的进程的资源(进程的代码段,数据段和所拥有的系统资源如fd)
    系统开销:创建或者撤销进程的时候,系统要为之创建或回收PCB,系统资源等,切换时也需要保存和恢复CPU环境。而线程的切换只需要保存和恢复少量的寄存器,不涉及存储器管理方面的工作,所以开销较小。此外,统一进程中的多个线程由于共享地址空间,所以通信同步等都比较方便。

进程状态 3种
就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源
运行状态:占用处理机资源运行,处于此状态的进程数小于等于CPU数
阻塞状态: 进程等待某种条件,在条件满足之前无法执行
状态转换如下:

image.png

线程状态 6种状态(Java)

  1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。
  2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。
    线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。
    3.阻塞(BLOCKED):表示线程阻塞于锁。
    4.等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。
    5.超时等待(TIMED_WAITING):该状态不同于WAITING,它可以在指定的时间后自行返回。
  3. 终止(TERMINATED):表示该线程已经执行完毕。

状态转换如下:


image.png

相关文章

网友评论

    本文标题:进程与线程的区别

    本文链接:https://www.haomeiwen.com/subject/bwettqtx.html