面试高手:lock与synchronized有何本质区别?

2026-05-19 21:400阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计798个文字,预计阅读时间需要4分钟。

面试高手:lock与synchronized有何本质区别?

今天分享一道阿里巴巴的面试题,题目是Lock和synchronized的区别。

普通人:Lock是J.U.C包中提供的锁,synchronized是Java中的同步关键字。

高手:Lock是J.U.C包中提供的高级同步机制,它提供了比synchronized更丰富的功能,如尝试锁定、定时锁定等。synchronized是Java中的同步关键字,用于实现线程间的同步。两者在功能上有所不同,但都可以实现线程同步。

今天来分享一道阿里一面的面试题,“lock和synchronized的区别”。

对于这个问题,看看普通人和高手的回答!

普通人:

嗯,lock是J.U.C包里面提供的锁,synchronized是Java中的同步关键字。

他们都可以实现多线程对共享资源访问的线程安全性。

高手:

下面我从4个方面来回答

  1. 从功能角度来看,Lock和Synchronized都是Java中用来解决线程安全问题的工具。

  2. 从特性来看

    1. Synchronized是Java中的同步关键字,Lock是J.U.C包中提供的接口,这个接口有很多实现类,其中就包括ReentrantLock重入锁

    2. Synchronized可以通过两种方式来控制锁的粒度

      一种是把synchronized关键字修饰在方法层面

      另一种是修饰在代码块上,并且我们可以通过Synchronized加锁对象的声明周期来控制锁的作用范围,比如锁对象是静态对象或者类对象,那么这个锁就是全局锁。

阅读全文

本文共计798个文字,预计阅读时间需要4分钟。

面试高手:lock与synchronized有何本质区别?

今天分享一道阿里巴巴的面试题,题目是Lock和synchronized的区别。

普通人:Lock是J.U.C包中提供的锁,synchronized是Java中的同步关键字。

高手:Lock是J.U.C包中提供的高级同步机制,它提供了比synchronized更丰富的功能,如尝试锁定、定时锁定等。synchronized是Java中的同步关键字,用于实现线程间的同步。两者在功能上有所不同,但都可以实现线程同步。

今天来分享一道阿里一面的面试题,“lock和synchronized的区别”。

对于这个问题,看看普通人和高手的回答!

普通人:

嗯,lock是J.U.C包里面提供的锁,synchronized是Java中的同步关键字。

他们都可以实现多线程对共享资源访问的线程安全性。

高手:

下面我从4个方面来回答

  1. 从功能角度来看,Lock和Synchronized都是Java中用来解决线程安全问题的工具。

  2. 从特性来看

    1. Synchronized是Java中的同步关键字,Lock是J.U.C包中提供的接口,这个接口有很多实现类,其中就包括ReentrantLock重入锁

    2. Synchronized可以通过两种方式来控制锁的粒度

      一种是把synchronized关键字修饰在方法层面

      另一种是修饰在代码块上,并且我们可以通过Synchronized加锁对象的声明周期来控制锁的作用范围,比如锁对象是静态对象或者类对象,那么这个锁就是全局锁。

阅读全文