浏览器的进程和线程
浏览器中的进程
- 应用主进程
浏览器应用进程 - 渲染进程
每一个 Tab - GPU 进程
GPU 渲染进程,CSS 属性可以使用 GPU 渲染进行加速 - 网络进程
网路请求 - 插件进程
- 音频进程
浏览器中线程
- GUI 渲染线程
页面渲染 - JS 执行线程
JS 执行线程,与 GUI 线程互斥 - 事件线程
事件监听线程,addEventListener - 定时器线程
setTimeout, setInterval, 定时将回调放在 宏任务队列中 让 JS 执行线程执行 - 异步网络线程
异步网络请求
进程
- 进程是资源分配的最小单位
- 进程拥有独立的地址空间,由系统进行分配,操作十分的昂贵
- 使用 IPC 来进行进程和进程之间的通信
- 进程之间互不影响
- 系统分配堆作为空间
线程
- 线程是资源调度的最小单位
- 共享进程的数据,使用相同的地址空间,切换线程的成本比线程低
- 线程发生异常后,当前进程会受到影响
- 使用栈作为空间,线程和线程的栈互不影响
协程
- 协程是一种基于线程之上,线程中也可以存在多个协程。
- 协程可以在线程中快速切换,成本较低
IPC
进程间通信(interprocess communication)
常用方法
- 文件
- 信号
- socket
- 消息队列
- pipe
- 共享内存
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论