并发和并行、进程和线程的区别以及线程调度

·  阅读 366

并发

并发(交替执行):两个或多个事件在同一个时间段内发生,CPU在不同的事件中来回切换,宏观上像是同时执行,微观上是交替执行。

并行

并行(同时执行):两个或多个事件在同一刻发生,是真正的同时执行。例:有两个CPU,那么就是一个CPU处理一个事件,实现两个事件同时被CPU执行

进程

  1. 由硬盘进入到内存中的程序叫做进程:比如“卡巴斯基杀毒软件”的启动就是从硬盘加载到了内存中,此时就称为进程,可在任务管理器中查看所有的进程。
  2. 一个应用程序可以同时运行多个进程,每个进程都有一个独立的内存空间。
  3. 进程是系统运行程序的基本单位,也是程序的一次执行过程。
  4. 系统运行一个程序即是一个进程从创建、运行到消亡的过程

线程

  1. 应用程序通向CPU的路径CPU通过这个路径就可以执行对应的功能,而这条路径被称为线程,例:点击“卡巴斯基的病毒查杀”功能时,就开辟了一条通向CPU的路径,此时CPU就通过该路径可以执行“病毒查杀”功能。
  2. 线程是进程中的一个执行单元,负责当前进程中程序的执行。
  3. 一个进程中至少有一个线程,拥有多个线程的应用程序被称为多线程程序

进程和线程的区别

  • 进程:有独立的内存空间,进程中数据存放的位置(堆空间和栈空间)是独立的,并且进程至少有一个线程。
  • 线程:栈空间是独立的,堆空间是共享的;且线程消耗的资源比进程少很多。

线程调度:

  • 分时调度:所有线程轮流获得CPU的使用权并且使用CPU,平均分配每个线程占用CPU的时间。
  • 抢占式调度:让优先级高的线程优先使用CPU,当优先级相同时,随机选择一个线程使用CPU(线程随机性),Java中使用的就是“抢占式调度”。

PS:

  1. 文章来自各种资源的整理,如有侵权请告知删除。
  2. 转载本文请注明出处
分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改