1 介绍
Lock提供了和synchronized类似的同步功能,只是在使用时需要显示地获取和释放锁,虽然Lock缺少了synchronized隐士获取释放锁的便捷性,但是却拥有了锁获取与释放的可操作性,可中断的获取锁以及超时获取锁等多种synchronized所不具备的特性。
2 synchronized的隐式获取释放锁的缺点
虽然synchronized能够隐式获取释放锁,可以减少程序员的操作,但是这种情况下,有可能大量线程都在阻塞地等待一个方法的对象锁,如果是一些大型任务,那么synchronized会严重影响系统的性能。
Lock的特点
1) 尝试非阻塞地获取锁,当前线程尝试获取锁,如果这一时刻没有其他线程获取到,则成功获取锁。没有获取到则返回false
2) 获取到的锁能够响应中断,当获取锁的线程被中断,中断异常抛出将会被抛出,同时锁就会被释放。
3) 在指定的事件内,如果截止时间之前无法获取锁,则会返回。