写点什么

Java内存模型

0 人感兴趣 · 12 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/0a/0a89eda5c62a66030c34a90051fe7de7.jpeg?x-oss-process=image/resize,w_416,h_234

深入汇编指令理解 Java 关键字 volatile

用户头像
AI乔治4 月 23 日

volatile关键字是Java提供的一种轻量级同步机制。它能够保证可见性和有序性,但是不能保证原子性

https://static001.geekbang.org/infoq/5f/5f253b654b0be16fcefeffdc91b1e570.png?x-oss-process=image/resize,w_416,h_234

【并发编程的艺术】详解单例模式的实现方式(Java)

单例模式是一种常用且常用来考察的设计模式。尤其在Java中,包含了对JMM理解的考察。事实上,尽管大家对单例模式概念都有了解,也能说出几种实现模式,但却不一定保证正确,对原理也了解的不够透彻。所以本章将详细阐述。

https://static001.geekbang.org/infoq/5f/5f253b654b0be16fcefeffdc91b1e570.png?x-oss-process=image/resize,w_416,h_234

【并发编程的艺术】内存语义分析:volatile、锁与 CAS

本文详细描述了volatile关键字和锁的内存语义。包括ReentrantLock的源码分析,和CAS原子性实现原理。下一篇将分析final域的内存语义、happens-before规则,以及双重检查锁定与延迟初始化,并总结Java内存模型。

https://static001.geekbang.org/infoq/5f/5f253b654b0be16fcefeffdc91b1e570.png?x-oss-process=image/resize,w_416,h_234

【并发编程的艺术】Java 内存模型的顺序一致性

本篇将深入多线程并发执行问题的根源。总线的工作机制,顺序一致性模型以及JMM在性能与一致性上的折衷。通过这些明确问题产生的原因。在下篇文章中将介绍volatile、synchronized、final域的内存语义,来看它们是怎样解决这些问题的,以及各自的适用场景。

https://static001.geekbang.org/infoq/5f/5f253b654b0be16fcefeffdc91b1e570.png?x-oss-process=image/resize,w_416,h_234

【并发编程的艺术】详解指令重排序与数据依赖

上一篇我们讲到了处理器在执行时,会对指令进行重排序,而这会导致数据一致性问题。对指令重排的理解非常重要,这也是并发问题出现的最大原因。

【并发编程的艺术】JAVA 原子操作实现原理

本篇把原子操作单独拿出来详细阐述,结合前面两篇文章中的CPU多级缓存结构进行串联,加深理解。下一篇会全面研究Java的内存模型

https://static001.geekbang.org/infoq/07/07b80a22e05408bf02b7eb656147e27e.png?x-oss-process=image/resize,w_416,h_234

Java 内存模型精讲

用户头像
伯阳1 月 7 日

一篇文章来讲懂JMM控制主内存与每个线程的本地内存如何进行交互来提供共享数据的可见性

Java 内存模型

用户头像
懒AI患者2020 年 12 月 13 日

java运行程序(进程)时,会有对应的栈、堆、非堆空间,其大小根据默认值或配置参数指定。

https://static001.geekbang.org/infoq/c0/c0b7d0cb4605c2ccdb73cb4bcfa3f263.png?x-oss-process=image/resize,w_416,h_234

JVM 系列 -java 内存模型(JMM)

用户头像
诸葛小猿2020 年 11 月 17 日

Java内存模型,是Java语言在多线程并发情况下对于共享变量读写(实际是共享变量对应的内存操作)的规范,主要用于java程序访问共享内存时,屏蔽不同的操作系统、不同的硬件的差异,从而解决多线程可见性、原子性等问题。

https://static001.geekbang.org/infoq/45/45b1adace2feff8b2de06a4c33232a0b.png?x-oss-process=image/resize,w_416,h_234

深入理解 Java 内存模型

用户头像
itlemon2020 年 7 月 9 日

多线程程序要比单线程程序复杂的多,单线程程序中,线程从内存中读取一个变量,如果这个变量的值本身就是1,那么线程读取到的值必然是1。但是在多线程程序中,如果多线程对变量的读写没有进行合理的控制,那么后续线程读取到的变量的值很可能是2,甚至是3等。

Java内存模型_Java内存模型资料文章-InfoQ写作平台