内存模型

image.png
多线程 - 图2

GC

多线程 - 图3

Volatile

image.png
多线程 - 图5

Synchronized

  • 监视器

image.png

  1. synchronized (Test3.class){
  2. System.out.println(1);
  3. }
  4. monitorenter
  5. getstatic #6 // Field java/lang/System.out:Ljava/io/PrintStream;
  6. iconst_1
  7. invokevirtual #7 // Method java/io/PrintStream.println:(I)V
  8. aload_1
  9. monitorexit

多线程 - 图7

  • 对象内存分布image.png

    锁对象,锁类的区别

    多线程 - 图9

    锁升级

    image.png
    多线程 - 图11