• 用在方法声明里,或者用在代码块上;
  • 用在静态方法上,对象锁是当前的字节码Class对象;
  • 用在普通方法上,对象锁是当前的实例对象;
  • 同步代码块,对象锁是synchronized(x)为括号里面的对象;
  • 一般和x.wait(), x.notify(),x.notifyAll()配合使用,进行线程间通讯的;
  • 该关键字禁止指令重排,保证了数据的可见性,和操作的原子性;
  • 在同步代码块上使用,在编译成字节码的时候,添加 monitorenter和monitorexit进行控制同步;
  • 在方法声明中添加Synchronized关键字生命同步方法,编译成字节码会在方法的flag中添加一个ACC_SYNCHRONIZED 的标识,代码该方法是一个同步方法。

(整理笔记待完善)

相关文章:

  • 2022-12-23
  • 2021-07-05
  • 2021-10-25
  • 2022-12-23
  • 2021-05-07
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
猜你喜欢
  • 2021-08-18
  • 2021-12-17
  • 2021-09-09
  • 2022-12-23
  • 2021-12-13
  • 2021-10-26
  • 2022-12-23
相关资源
相似解决方案