计算机的核心是CPU,负责承担所有的计算任务。
一,进程
一个进程是一个程序的运行实例。在启动一个程序时,操作系统会为这个程序创建一个内存空间,来存放代码、运行的数据、一个任务的主线程,这个创建的运行环境就叫做进程。
二,线程
线程是依附于进程存在的,负责处理具体的任务。由进程启动和管理,一个进程中可以有多个线程并行处理任务。
三,特点
- 每个进程之间的内容都是相互独立的,因此任意进程的崩溃与挂起等都不会影响其他进程
- 进程中的所有线程共享该进程中的数据
- 进程中如果有一个线程出现异常,都会导致该进程崩溃
- 当一个进程关闭之后,操作系统会回收该进程所占的内存
四,多进程浏览器
早期的浏览器都是单进程的,所有的任务都在同一个进程里,比如网络、js渲染等,因此如果一个线程出现问题很容易导致浏览器卡顿甚至崩溃。而现在的多进程浏览器解决了此问题
多进程浏览器的主要进程:
Browser进程(控制地址栏、书签栏、前进后退、网络请求、文件访问等)
渲染进程(内核)
GPU进程(3D绘制)
第三方插件进程(第三方插件进程是每种插件为一个进程,且在插件运行时才创建)
浏览器的内核比较复杂,包含主要的5大线程有:
GUI渲染线程(负责解析html和css,构建各种dom树)
js引擎线程(负责处理js的脚本)
事件触发线程(主要控制事件循环)
定时触发器线程(setTimeout和setInterval所在的线程)
异步http请求线程(ajax请求是在链接后浏览器新开的线程请求)