《Java并发编程的艺术》笔记

一、挑战

  上下文切换、死锁、资源的限制

二、Java并发机制的底层实现原理

  原子性、可见性、顺序一致性

  1. volatile:底层是操作系统的lock指令(CPU:总线锁、缓存锁)
    达到了内存屏障+内存可见性的目的,但是不能保证原子性
  • 内存屏障:阻止指令的重排序
  1. synchronized:monitorenter、monitorexit
    偏向锁->轻量级锁->重量级锁

任何一个对象天然拥有锁(锁存在对象头中 )

等待通知机制:wait、notify

  • wait:进入等待队列,同时释放锁
  • notify:将等待队列线程迁移至同步队列,但是不会释放锁

OpenJDK有源码,interpreterRuntime.cpp

你可能感兴趣的:(《Java并发编程的艺术》笔记)