说说对于sychronized同步锁的理解

  • 每个 Java 对象都有一个内置锁
  • 线程运行到非静态的 synchronized 同步方法上时,自动获得实例对象的锁
  • 持有对象锁的线程才能运行 synchronized 同步方法或代码块时
  • 一个对象只有一个锁
  • 一个线程获得该锁,其他线程就无法获得锁,直到第一个线程释放锁。任何其他线程都不能进入该对象上的 synchronized 方法或代码块,直到该锁被释放。
  • 释放锁是指持锁线程退出了 synchronized 同步方法或代码块
  • 类可以同时拥有同步和非同步方法
  • 只有同步方法,没有同步变量和类
  • 在加锁时,要明确需要加锁的对象
  • 线程可以获得多个锁
  • 同步应该尽量缩小范围


原文链接
 


 

原文地址:https://www.cnblogs.com/ConstXiong/p/12058133.html