• java核心技术-多线程之线程内存模型


     对于每一种编程语言,理解它的内存模型是理所当然的重要。下面我们从jvm的内存模型来体会下java(不限java语言,严格来讲是JVM内存模型,所有JVM体系的变成语言均适用)的内存模型。

    堆: 就是我们写程序new出来的对象存放的内存。

    方法区:就是存放类字节码和常量的内存。

    虚拟机栈:就是局部变量(方法内定义的变量以及方法的入参、返回值),线程栈的内存。

    本地方法区: 就是jvm本地调用时使用的内存。

    程序计数器:就是程序运行到字节码哪行的指示器的内存。

    好了,看如下一段代码:

    当我们执行上面代码的时候,内存大致如下布局

        相信结合着静态代码和图,大家对于线程在jvm内存中的分布就一目了然。上面有个程序计数器没有讲,这里简单补充下,程序计数器是被线程持有的,也就是每个线程都有有个程序计数器,用于指示当前线程执行到那个指令,程序计数器占用的内存大小是非常小的,在实际应用中我们时常忽略不计这部分内存。好了内存模型部分讲的差不多了,下节开始正式java 多线程之旅。本节内容属于个人理解,如有错漏之处,欢迎之处,不胜感激。

  • 相关阅读:
    Windows 10 字体替换
    Windows 任务栏增加秒显示
    CCProxy v8.0 代理服务器
    Git RPM软件包 && 源码包
    Google Chrome 浏览器最新版本 71.0.3578.98(正式版本) (64 位)
    Linux 查询公网出口IP
    Windows 10 Enterprise LTSC做Windows To Go蓝屏无法进入系统
    Nginx编译./configure翻译
    Windows 10 快捷键
    JDBC连接MySQL
  • 原文地址:https://www.cnblogs.com/xgoing/p/9512040.html
Copyright © 2020-2023  润新知