1.syschronized是关键字,lock是接口;syschronized是内置的,基于jvm层面的,所以发生异常时会自动释放锁;二lock是基于代码的,发生异常的时候使用unlock()释放接口;
2.lock接口通过其中的lockInterruptibly()方法可以中断正在等待获取锁的线程,但是syschronized关键字只能一直等待获取线程;
3.lock接口通过其中的tryLock()方法可以判断是否已经获取到锁,但是syschronized关键字不可以;
1.syschronized是关键字,lock是接口;syschronized是内置的,基于jvm层面的,所以发生异常时会自动释放锁;二lock是基于代码的,发生异常的时候使用unlock()释放接口;
2.lock接口通过其中的lockInterruptibly()方法可以中断正在等待获取锁的线程,但是syschronized关键字只能一直等待获取线程;
3.lock接口通过其中的tryLock()方法可以判断是否已经获取到锁,但是syschronized关键字不可以;