zoukankan      html  css  js  c++  java
  • java核心技术-多线程之线程内存模型

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

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

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

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

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

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

    好了,看如下一段代码:

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

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

  • 相关阅读:
    【BZOJ2067】[Poi2004]SZN
    BZOJ4675
    [bzoj3522][bzoj4543][POI2014]HOTEL
    bzoj2969矩形粉刷
    bzoj2969矩形粉刷
    1419: Red is good
    【BZOJ2698】染色
    BZOJ5084[hashit]
    [WC2014]紫荆花之恋
    齐次常系数递推关系式
  • 原文地址:https://www.cnblogs.com/xgoing/p/9512040.html
Copyright © 2011-2022 走看看