Lock锁和syncnized区别
首先,lock锁需要手动加锁和手动解锁,sync则不需要手动解锁,前者可以理解为半自动手枪,后者为全自动手枪
其次,lock锁是java基于 aqs 实现 cas + locksupport 实现,所以lock锁为悲观和乐观相结合;而sync在jdk1.6以后,进行了优化,过程如下, 偏向锁→轻量锁→短暂自旋锁→变为重量锁
个人理解,主要区别
Lock锁和syncnized区别
首先,lock锁需要手动加锁和手动解锁,sync则不需要手动解锁,前者可以理解为半自动手枪,后者为全自动手枪
其次,lock锁是java基于 aqs 实现 cas + locksupport 实现,所以lock锁为悲观和乐观相结合;而sync在jdk1.6以后,进行了优化,过程如下, 偏向锁→轻量锁→短暂自旋锁→变为重量锁
个人理解,主要区别