synchronized关键字与Lock接口的区别?
synchronized关键字与Lock接口的区别?
无论是synchronized关键字还是Lock接口,都是用来设置实现线程同步。
synchronized关键字
1. synchronized关键字
2. 自动锁定需要同步执行的线程资源,操作不灵活
3. 如果执行的过程中发生异常情况,会自动释放锁定的线程资源
4. 同步执行的过程中不能直接中断对线程资源的锁定,必须要等到线程访问完锁定资源之后才会释放被锁定的资源
Lock接口
1. Lock接口
2. 手动锁定同步执行的线程资源,操作灵活
3. 如果执行的过程中发生异常情况,不会释放线程锁定的线程资源,所以就需要在finally块中实现手动释放被锁定的资源。
4. 可以在需要的时候通过unlock()方法中断释放被当前线程占用的资源。