前言:

     Java中,有一个非常重要的关键字Synchronized

Synchronized 关键字理解

一. 定义:

         java中一个关键字

 

二. 作用:

        Synchronized修饰的方法或者代码块,同一时刻最多只有一个线程执行,只有当前线程执行完毕该代码,别的线程才会执行 。

三. 应用场景:

    保证线程安全,解决多线程中的并发同步问题,具体场景如 下:

  1. 修饰 实例方法 / 代码块时,保护的是同一个对象方法的调用 & 当前实例对象
  2. 修饰 静态方法 / 代码块时,保护的是 静态方法的调用 & class 类对象

 

四. 原理

  1. 依赖 JVM 实现同步
  2. 底层通过一个监视器对象(monitor)完成, wait()notify() 等方法也依赖于 monitor 对象

监视器锁(monitor)的本质 依赖于 底层操作系统的互斥锁(Mutex Lock)实现

 

 

 

 

 

 

          

相关文章: