(大白话)堆,栈,虚拟内存

来源:互联网 发布:淘宝有什么要手机号码 编辑:程序博客网 时间:2024/06/16 15:54

堆:存在于进程中

栈:依附于线程

堆:从操作系统为进程分配的4G内存中划分出来的,从低地址开始放,大小可变,在进程启动的时候会同时启动一个主线程(执行Main方法),并且分配一块内存空间(线程空间)
栈:线程生来就是用来执行代码的,不同的线程拥有各自的栈,在各自的线程空间之中


虚拟内存:(从两个角度看)
1.从物理上来看:物理内存+虚拟内存《将硬盘当成内存使用》--我们日常电脑在运行时有时候会提示虚拟内存不够,我们就会在我的电脑右键的选项中设置虚拟内存,将硬盘当内存使
2.从操作系统内存管理上来讲:Windows操作系统为每个进程分配4G的虚拟内存

进程:
一个应用程序就是一个进程
线程运行的进程中

****只有代码运行起来才会对应真正的物理内存,所以不用担心内存不够用的《代码要一行一行执行》****