- lock 是一个接口,而syncronizeds是关键字,synchronized是内置语言实现,锁基于jvm。
2.synchronized 在遇到异常时会自动释放锁,不会出现死锁,而lock发生异常时,不会自动释放锁,需要unlock来释放锁,可能引起死锁的发生。 - lock 等待锁过程中可以用interrupt来等待,而synchronized 只能等待锁的释放,不能响应中断。
4.是否知道获取锁
lock 可以通过trylock来知道有没有获取锁,而synchronized不能
5.lock可以提高多个线程进行读操作的效率
6.当竞争资源非常激烈时,此时lock的性能优于sunchronized .
7.synchronized 使用Object对象本身的wait 、notify /notifyAll 调度机制,而lock 可以使用Condition进行线程之间的调度。
网友评论