一道非常简单的Java面试题

桃扇骨 2021-07-20 11:33 550阅读 0赞

今天跟大家谈一谈并发编程中,大厂面试官经常会问的一个最简单的问题:“非公平锁和公平锁有什么区别?

看完第一眼,是不是很简单?

很多人张口就回答:“随机访问”、“插队访问””。

这么回答对不对?只能说,也没错。但如果我作为面试官,我最想听到的就是:非公平锁有两次抢锁机会,但是一旦进入队列,就永远排队。“一朝排队,永远排队。

上面的结论,是我通过分析公平锁和非公平锁lock方法的源码之后得出来的。

公平锁lock方法的源码分析

  1. final void lock() {
  2. acquire(1);//1------标识加锁成功之后改变的值
  3. }

非公平锁的lock方法

  1. finalvoid lock() {
  2. if (compareAndSetState(0, 1))
  3. setExclusiveOwnerThread(Thread.currentThread());
  4. else
  5. acquire(1);
  6. }

a57a494634594a367cd9a61dd5b4745b.png

公平锁、非公平锁代码执行逻辑的区别

用一个例子来通俗讲解公平锁和非公平锁,那就是:

1、你去火车站买车票,大家都老老实实排队,你也跟着排队,非常公平合理,这就是公平锁

2、你去火车站买车票,大家都老老实实排队,但你是个小混混,直接走到售票窗口,“给我一张票!”

结果1:大家都不敢吭声,售票员直接把票卖给你了;抢锁成功

结果2:又来了一个小混混,把你按在地上一顿摩擦,他插队买票,你乖乖到后面排队;抢锁失败

很多人认为非公平锁插队就是永远在插队,实际上只要它第一次加锁失败之后,一旦进入队列,跟公平锁就没有区别了。

为什么阿里巴巴、美团经常会问你这些看起来很简单的面试题?因为这些看似简单的题目,面试官可以从你的回答里看出你的真实水平。****(文末有惊喜,笔者整理了阿里、美团等大厂的面试题,看看你能否答上来?)

Java中有各种各样的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率!从互斥锁/读写锁、乐观锁/悲观锁、自旋锁、分段锁…再到JDK锁、分布式锁,你对Java中的锁了解多少?

谷歌线上如何使用锁及各种锁的效率有何不同?

主流分布式锁方案你知道哪些?

如何实现Redis分布式锁?

说在最后

这里还有一份刚更新的《2020最新大厂面试题汇总》,>点击此处,免费领取以下资料

6e1f9f85311c81fab5c13b508be3cfbb.png

文末java面试题,进阶技术大纲,架构资料分享

我将这三次阿里面试的题目全部分专题整理出来,并附带上详细的答案解析,生成了一份PDF文档,有兴趣的朋友们可以点击这里即可免费领取

  • 第一个要分享给大家的就是算法和数据结构

网易严选Java开发三面面经:HashMap+JVM+索引+消息队列

  • 第二个就是数据库的高频知识点与性能优化

网易严选Java开发三面面经:HashMap+JVM+索引+消息队列

  • 第三个则是并发编程(72个知识点学习)

网易严选Java开发三面面经:HashMap+JVM+索引+消息队列

  • 最后一个是各大JAVA架构专题的面试点+解析+我的一些学习的书籍资料

网易严选Java开发三面面经:HashMap+JVM+索引+消息队列

一个是各大JAVA架构专题的面试点+解析+我的一些学习的书籍资料**

[外链图片转存中…(img-8ivzPexA-1623611991089)]

还有更多的Redis、MySQL、JVM、Kafka、微服务、Spring全家桶等学习笔记这里就不一一列举出来

发表评论

表情:
评论列表 (有 0 条评论,550人围观)

还没有评论,来说两句吧...

相关阅读

    相关 一道面试

    问:已有一个函数f(),它等概率的生成1-5的整数,问如何利用该函数,等概率的生成1-7的整数? 解: 先抛开这个问题,换另一个问题进行思考:假若我们现在有一个

    相关 一道HashMap面试

    1、你看过那些源码吗? > 集合类 2、那你能讲讲HashMap的实现原理吗? > 1.7 数组+链表;1.8 数组+链表+红黑树 3、HashMap什么时候会进行re

    相关 一道非常简单Java面试

    今天跟大家谈一谈并发编程中,大厂面试官经常会问的一个最简单的问题:“非公平锁和公平锁有什么区别?” 看完第一眼,是不是很简单? 很多人张口就回答:“随机访问”、“插队访问”

    相关 一道面试

    大四第一学期,就只有两个晚上有选修课,正好快11周,选修课也结束了。就开始思量着找工作,前几天花费了一天时间在大街网写了一份简历,可大街网上提供的岗位太少。在室友的推荐下,转战