线程安全-- synchronized

synchronized 锁的范围

  • 对于普通同步方法,锁是当前实例对象
  • 对于静态同步方法,锁是当前类的class对象
  • 对于同步方法块,锁是Synchonized 括号里配置的对象


    线程安全-- synchronized_第1张图片
    image.png

关于锁的互斥问题

一般来说同时去获取同一个资源才会出现互斥,就是所谓多个线程去争取一个共享资源,只有一个线程能够持有这个共享资源。

synchronized实现锁的原理

线程安全-- synchronized_第2张图片
image.png

synchronized 的优化(1.6之后)

  • 自适应自旋锁
  • 引入偏向锁、轻量级锁
  • 锁消除、锁粗化

你可能感兴趣的:(线程安全-- synchronized)