[译]Java Memory Model(Java内存模型)JMM与硬件内存模型

翻译自:Java Memory Model

  • Java内存模型
  • 硬件内存结构
  • JMM以及硬件内存结构的对应关系
    • 共享对象的可见性
    • 线程竞争情况

Java内存模型(后面简称JMM)定义了Java虚拟机如何通过计算机内存(RAM)进行工作的。JVM是整个计算机的模型,所以JVM中存在着内存模型(即JMM) – AKA(不知道怎么翻译)

如果你想要设计正确的并发程序,那理解JMM就很重要了。JMM定义了不同的线程什么时候以及怎样才能看到其他线程写入的共享变量值,并且在必要的情况下,如何去同步(synchronize)的访问这些共享的变量。

原来的JMM是不足的,所以在java 1.5的时候JMM被重新设计,并且这个模型现在依然在Java8中运行着。

Continue reading “[译]Java Memory Model(Java内存模型)JMM与硬件内存模型”

一个Java程序猿眼中的汇编

[TOC]

一、介绍

在计算机中,CPU只能识别二进制,当需要CPU做事情的时候,都需要通过二进制去指挥CPU做什么事情。古人觉得二进制实在是难以理解,所以才发明了汇编语言以及后面的高级语言,所以汇编语言可以称作为比较接近机器语言的语言了。

当然后面的古人依然觉得汇编语言难以理解,所以发明了C、C++、Java来解决难以理解的问题。所以后面的语言越来越偏于人类自然语言,并且使用面向对象的思想来设计程序。当然这期间经历的事情还挺多:C编译成汇编语言,汇编语言再翻译成二进制语言,这个过程即称为assembling。

学习汇编语言既需要下面两个概念的理解:内存模型寄存器

Continue reading “一个Java程序猿眼中的汇编”