线程:程序执行流程的最小单位。
什么?你什么意思,我不明白。所以只看这个例子。通常我们在使用电脑的时候,如果我想登录微信,那么我就双击微信图标来登录。表面上看,桌面打开的是微信界面。其实系统也相应地开启了一个进程(一个程序可能有多个进程,比如qq主进程、qq辅助进程等)。系统会给进程分配相应的CPU资源和内存资源,保证进程运行。
我们打开任务管理器
图片我提前打开了Google Chrome,对应的任务管理器也会有对应的进程,以及进程的CPU占用率和内存占用情况。
现在你应该明白进程意味着什么了,但是线程到底是什么?
其实我们的一个程序就对应一个进程(这里直接以一个为例),进程还可以细分为线程。比如我正在微信聊天,我想看朋友圈。对应的微信进程会分配朋友圈的线程来执行。即进程是一个类型,线程是该类型下的一个具体列表。进程管理线程。
因此,应该比较容易理解:进程是CPU资源分配的最小单位(系统会给它分配内存)
最后,我们用更官方的术语来描述一下:
进程是CPU资源分配的最小单位(能够拥有资源并独立运行的最小单位)。线程是CPU调度的最小单位(线程是基于进程的程序运行单位,一个进程中可以有多个线程。)了解了进程和线程之后,我们再来看看浏览器进程。
2.浏览器是多进程的
从上面我们了解到操作系统是通过进程来控制程序的运行的。实际的浏览器也会有自己的进程。
当我们在浏览器中打开标签页时,相当于创建了一个独立的浏览器标签进程。与Windows任务管理器类似,我们可以打开Google的进程管理器。
图片我们可以看到,和Windows任务管理器一样,每个标签页都对应着自己的进程。
注意:浏览器在这里也应该有自己的优化机制。有时打开多个标签页后,您可以在Chrome任务管理器中看到某些进程已合并。例如,打开多个空白标签页后,你会发现很多进程被合并了。空白选项卡合并到一个进程中。
(所以每个Tab标签对应一个进程并不一定绝对)
好了,关于深入解析:浏览器核心运行原理——进程与线程的奥秘和的问题到这里结束啦,希望可以解决您的问题哈!
【深入解析:浏览器核心运行原理——进程与线程的奥秘】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于开始学习浏览器底层原理了!
有19位网友表示赞同!
感觉进程和线程的概念很抽象,希望这篇文章能解释得清晰易懂。
有5位网友表示赞同!
以前只是知道浏览器可以同时打开很多网页,现在想进一步明白背后的技术原理。
有8位网友表示赞同!
我对程序的并发执行原理很有兴趣,学习关于进程与线程的知识很重要。
有18位网友表示赞同!
这篇文章应该会介绍如何平衡资源的使用吧?
有20位网友表示赞同!
期待了解浏览器的加载和渲染效率是怎么实现的。
有19位网友表示赞同!
会不会有图解或代码示例来帮助理解这些概念?
有7位网友表示赞同!
学习完这篇文章,是不是就能自己写浏览器啦?
有8位网友表示赞同!
希望这篇文章能介绍不同系统对进程与线程的支持情况。
有18位网友表示赞同!
浏览器的安全性也是依赖于进程和线程机制吧?
有8位网友表示赞同!
现在很多软件都采用多进程架构,这个概念理解起来很重要。
有17位网友表示赞同!
终于想搞懂为什么Chrome总是我电脑最耗内存的程序了!
有18位网友表示赞同!
学习计算机科学的基础知识,就是从了解这些基本原理开始的!
有20位网友表示赞同!
最近在研究网页开发,对浏览器的运行机制很感兴趣。
有17位网友表示赞同!
如果能理解浏览器的工作原理,就能更好地编写网页代码吧?
有19位网友表示赞同!
这篇文章应该会介绍一些优化浏览器的技巧吧?
有11位网友表示赞同!
学习浏览器基础知识对我未来的编程道路很有帮助!
有16位网友表示赞同!
对技术原理感兴趣的程序员,必须了解浏览器运行机制!
有6位网友表示赞同!
期待这篇文章能带来新的思考和启发!
有6位网友表示赞同!