前端校招准备系列--进程和线程

前言

  在学习js其余知识时,有时候会涉及到进程的问题,可是操做系统知识薄弱的我,没有办法跳过关于进程的知识,因此卡在了这里,那就顺便介绍一下我所理解的进程和线程吧!前端


CPU,进程以及线程之间的关系

图解三者之间的关系

图片描述

  由上图能够看出,他们是相互包含关系,即一个CPU中含有多个进程,一个进程又含有多块内存空间,一个内存空间中有多个线程。
  ps:每一个进程中的内存空间都是共享的,也就是该进程中的线程能够出如今它的任何内存空间中。并发

实例理解:学校分级结构

  咱们能够把某个学校当成是一个CPU,学校里的学院就是进程,一个学院中确定有教室,办公室,会议室以及厕所等,这些就能够看作是内存空间,那么这个学院的学生就是线程(假设学院的学生是在学院内活动)。异步

图片描述

  在同一个学院中的学生能够在学院的任何公共区域活动,对应的是一个进程中的每一个线程都共享内存空间,不是说每一个内存空间固定的就是那些线程。
  ps:从某些角度讲,这个例子并非很合适,可是能够用来理解他们三个之间的关系。学习


同步和异步的区别

  注意:同步和异步是针对进程而言spa

  • 同步:进程在执行某个请求时,若是该请求须要一段时间后才返回信息时,进程会一直等待该信息返回后才进行下一步操做。生活中的例子就是,和别人打电话的过程。
  • 异步:针对上面的说法,就是不等请求返回信息,直接执行后面的操做,信息返回后再接着处理。例子就是发短信。

串行,并行和并发的区别

  注意:串行,并行和并发是针对线程而言操作系统

  • 串行:和进程中的同步相似,都是只有一个操做执行完成后,才会进行下一个操做,不然一直处于等待状态
  • 并行处理:指的是同一时间段能够同时处理多个线程,重点是要同时,即须要多个CPU处理器
  • 并发处理:指在同一个时间段多个程序均可以处于开始运行和运行完毕之间的状态,不必定要同时

总结

  这里面的知识若是深究的话有不少,这篇文章旨在帮助理解前端会涉及的一些关于进程的概念,几乎全部的概念我都经过图示表示了,若是有错误欢迎指正!线程

相关文章
相关标签/搜索