面试高手:lock与synchronized有何本质区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计798个文字,预计阅读时间需要4分钟。
今天分享一道阿里巴巴的面试题,题目是Lock和synchronized的区别。
普通人:Lock是J.U.C包中提供的锁,synchronized是Java中的同步关键字。
高手:Lock是J.U.C包中提供的高级同步机制,它提供了比synchronized更丰富的功能,如尝试锁定、定时锁定等。synchronized是Java中的同步关键字,用于实现线程间的同步。两者在功能上有所不同,但都可以实现线程同步。
普通人:今天来分享一道阿里一面的面试题,“lock和synchronized的区别”。
对于这个问题,看看普通人和高手的回答!
嗯,lock是J.U.C包里面提供的锁,synchronized是Java中的同步关键字。
他们都可以实现多线程对共享资源访问的线程安全性。
高手:下面我从4个方面来回答
-
从功能角度来看,Lock和Synchronized都是Java中用来解决线程安全问题的工具。
-
从特性来看
-
Synchronized是Java中的同步关键字,Lock是J.U.C包中提供的接口,这个接口有很多实现类,其中就包括ReentrantLock重入锁
-
Synchronized可以通过两种方式来控制锁的粒度
一种是把synchronized关键字修饰在方法层面
另一种是修饰在代码块上,并且我们可以通过Synchronized加锁对象的声明周期来控制锁的作用范围,比如锁对象是静态对象或者类对象,那么这个锁就是全局锁。
-
本文共计798个文字,预计阅读时间需要4分钟。
今天分享一道阿里巴巴的面试题,题目是Lock和synchronized的区别。
普通人:Lock是J.U.C包中提供的锁,synchronized是Java中的同步关键字。
高手:Lock是J.U.C包中提供的高级同步机制,它提供了比synchronized更丰富的功能,如尝试锁定、定时锁定等。synchronized是Java中的同步关键字,用于实现线程间的同步。两者在功能上有所不同,但都可以实现线程同步。
普通人:今天来分享一道阿里一面的面试题,“lock和synchronized的区别”。
对于这个问题,看看普通人和高手的回答!
嗯,lock是J.U.C包里面提供的锁,synchronized是Java中的同步关键字。
他们都可以实现多线程对共享资源访问的线程安全性。
高手:下面我从4个方面来回答
-
从功能角度来看,Lock和Synchronized都是Java中用来解决线程安全问题的工具。
-
从特性来看
-
Synchronized是Java中的同步关键字,Lock是J.U.C包中提供的接口,这个接口有很多实现类,其中就包括ReentrantLock重入锁
-
Synchronized可以通过两种方式来控制锁的粒度
一种是把synchronized关键字修饰在方法层面
另一种是修饰在代码块上,并且我们可以通过Synchronized加锁对象的声明周期来控制锁的作用范围,比如锁对象是静态对象或者类对象,那么这个锁就是全局锁。
-

