内存模型

2021-08-20  本文已影响0人  司徒伯明

1.4 Java的 内存模型

是否线程安全
线程安全与cpu资源的抢夺
多线程在读写共享变量时引发的问题

线程的原子性

多个变量访问同一个变量的时候就会出现''线程安全的问题”。

Sychonize 关键字的使用

线程间等待唤醒机制

1.5 生产者消费者模型

1.6 Locker各种锁

CAS AQS

单列模式与多线程

这种饿汉式的写法在单线程环境下,初看起来是没有问题。但是如果在多线程的环境下就回出现错误。
简单直接的解决方案就是给 getInstance 方法加锁。

public class Singleton {
private Singleton(){    
}
private static  Singleton singleton = null;

 static {
     singleton = new Singleton();}
 public Singleton getSingleton(){
    return  singleton;
}}

JVM 层级.


image.png

as-if-serial
不管硬件什么顺序,单线程执行的结果不变,看上去像是 serial

ZGC 的 NUMA Aware
Non Uniform Memory Access,
分配内存会优先分配该线程所在的CPU的最近内存

上一篇下一篇

猜你喜欢

热点阅读