一直想把这个特别重要的关键词的底层实现搞明白.(当然现在也没有完全明白,如果有错误以后修改这篇文章) 首先,这个关键词synchronize可以说是个语法糖,它的具体用法网上很多博客都讲的比较明了了. 简而言之就是对一个对象“加锁”.首先,找个地方的对象不一定是堆里面的类的实例对象,也有可能是方法区的类对象.其次,这个关键词修饰的代码块的加锁过程有两个,进入的时候尝试获得锁(java字节码 monitorenter),退出时释放锁(java字节码monitorexit).这两个操作的再下一层是基…