锁的定义 在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源. 锁的实现 锁在计算机底层的实现,依赖于CPU提供的CAS指令(compare and swsp),对于一个内存地址,会比较原值以及尝试去修改的值,通过值是否修改成功,来表示是否强占到了这个锁. JVM中的锁 jvm中,有2个常用的锁 synchronized synchronized是java提供的关键字锁,可以锁对象,类,方法. 在JDK1.6以后,对synchronized进行了优化,增加了偏向锁和轻量锁模式,现在syn