核心概念
计算机程序
计算机程序是存储在硬盘上的一个文件,例如你经常用的浏览器Chrome,它在电脑硬盘上是一个chrome.exe的文件,你双击它就可以运行。这个文件里存储这个这个程序运行时需要的所有指令和数据。
进程
进程是一个计算机程序运行的容器,进程的概念是由操作系统提供的,一个计算机程序想要运行起来,需要操作系统首先启动一个进程,然后把计算机程序文件里存储的内容加载到进程中。比如当你双击chrome.exe这个文件时,操作系统就会创建一个进程,然后把chrome.exe文件里存储的指令和数据加载到这个进程的内存空间中去,然后按照进程的运行逻辑,chrome这个浏览器就被打开了。
内存空间
每个进程都有自己独立的内存空间,进程要执行的指令以及它操作的数据都存储在进程的内存空间里。为了快速理解线程,这里我们只对进程的内存空间的三个区域进行讲解。其他的就不再延展了。
1.程序数据区
在进程的内存空间中,专门存储计算机程序的指令和数据的区域。比如当操作系统使用一个进程去运行chrome浏览器时,这个区域里存放的就是chrome.exe文件中存储的内容。这个内存区域是只读的,在进程的运行期间内不能随意更改。
2.堆
堆是进程运行的过程中可以被动态读写的区域,这个区域一般来说在进程的内存空间里占据了很大一部分。举个例子,你用chrome浏览器