668 B
668 B
- lock是jdk中的一接口,在使用的时候必须要手动释放锁,否则会造成死锁,
- sync是一个关键字,是通过jvm底层来实现加锁的,使用的时候无需手动释放,异常时可以自动释放锁不会造成死锁
- lock可以使用interrupt来中断等待,但是sync是无法中断的,只能等待释放锁
- lock可以通过trylock来知道是否获得锁,但是sync不可以
- lock可以通过readwritelock来提高多个线程进行读操作的效率
- sync在底层有一些优化,比如适应自旋,锁消除,锁粗化,轻量级锁,偏向锁等
- lock使用的是乐观锁的机制,sync使用的是悲观锁