编程一个最简单游戏_一个最简单的面试题

作者简介: 子路,很多人称呼他为“路神”、“国内Spring源码讲解最好的第一人”,前华南谷歌资深工程师。 今天跟大家谈一谈并发编程中,大厂面试官经常会问的一个最简单的问题:“非公平锁和公平锁有什么区别?

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

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

这么回答对不对?只能说,也没错。但如果我作为面试官,我最想听到的就是:非公平锁有两次抢锁机会,但是一旦进入队列,就永远排队。“一朝排队,永远排队。” 上面的结论,是我通过分析公平锁和非公平锁lock方法的源码之后得出来的。

公平锁lock方法的源码分析

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

非公平锁的lock方法

finalvoid lock() {    if (compareAndSetState(0, 1))       setExclusiveOwnerThread(Thread.currentThread());    else        acquire(1);}

7227bfd479ecc9f08ee019be80b52373.png

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

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

1、你去火车站买车票,大家都老老实实排队,你也跟着排队,非常公平合理,这就是公平锁; 2、你去火车站买车票,大家都老老实实排队,但你是个小混混,直接走到售票窗口,“给我一张票!” 结果1:大家都不敢吭声,售票员直接把票卖给你了;抢锁成功 结果2:又来了一个小混混,把你按在地上一顿摩擦,他插队买票,你乖乖到后面排队;抢锁失败 很多人认为非公平锁插队就是永远在插队,实际上只要它第一次加锁失败之后,一旦进入队列,跟公平锁就没有区别了。 为什么阿里巴巴、美团经常会问你这些看起来很简单的面试题?因为这些看似简单的题目,面试官可以从你的回答里看出你的真实水平。 (文末有惊喜,笔者整理了阿里、美团等大厂的面试题,看看你能否答上来?) Java中有各种各样的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率!从互斥锁/读写锁、乐观锁/悲观锁、自旋锁、分段锁…再到JDK锁、分布式锁,你对Java中的锁了解多少? 谷歌线上如何使用锁及各种锁的效率有何不同? 主流分布式锁方案你知道哪些? 如何实现Redis分布式锁?

我特邀谷歌资深专家子路腾讯特邀技术专家Lison,为大家带来大厂线上千万并发AQS灵魂调优》,带你深度解读AQS框架核心源码,全面解析主流分布式锁方案,教你如何玩极致分布式锁。ca0276de6484b11d4216ff78ba17a849.png

2f9a85d30a3eb2c3bc6be9f49bb4c1cf.png 1 课程介绍 7.7 千万并发大厂线上AQS调优,终于有人把AQS讲清楚了
  • Java各类锁机制精讲;

  • 公平锁和非公平锁底层原理分析;

  • 谷歌线上如何使用锁及效率对比;

  • AQS框架核心源码深度解读;

  • 线上千万并发系统AQS调优实战;
7.8 锁机制升级 分布式锁底层解密
  • JDK锁 VS 分布式锁! 

  • 主流分布式锁方案全解析;

  • 十分钟实现Redis分布式锁;

  • 工匠之心,极致之路;

2 讲师介绍 子路老师

被学员称为“路神”、“国内Spring讲解最好的第一人”,前华南谷歌资深工程师;

专精领域:多次参与电商大促技术支持与保障,对市面上主流的开源框架源码——Spring、nacos,Springboot、JDK并发工具等等都有深入的研究;

Lison老师

腾讯特邀技术专家,资深架构师,10余年java行业经验。

专精领域:精通JAVA、J2EE和前端开发,擅长互联网高并发、高可靠架构设计; 3 适合人群 本次分享的内容偏原理和源码,需要有一定的Java基础知识,适合:
  • 具备一定自学能力,想提升自己;

  • 想要系统了解Java中锁的知识的小伙伴;

  • 立志成为高级工程师、架构师的IT人;
4 报名福利

1:0.1元秒杀资格,课程提供“直播+预习资料+源码+在线答疑”

2:赠送 Java关于锁的学习资料及高频面试题集含答案.pdf 3、今天报名额外赠送一份目前最“”的 《Java面试通关手册》V6.0版本f8aad9af3ff6a43943dfacf5760eb55d.png 这套面试手册的组成内容主要有以下3大主题,5个主要模块,35个小板块: 程序员面试题集:
JAVA核心面试题库(1000+题.pdf)JAVA常见面试题库(3000+题.pdf)BATJ JAVA经典必考面试题库(50+题.pdf)互联网一线大厂面试题库(300+题.pdf)百度篇、京东篇、腾讯篇、头条篇、美团篇、华为篇、滴滴篇等Java各知识点综合面试题(5000+题.pdf)并发编程、多线程、集合框架、设计模式、数据库、性能优化RabbitMQ消息中间件ActiveMQ消息中间件DubboJVMKafkaMongoDBMyBatisMySQLNettyNginxRedisTomcatZookeeperSpringSpringBootSpringCloudSpringMVC

a48c28ef49f7c04bef75f246aef6a93d.png

程序员必备书单(海量典藏版)

24240db1554afff777648b5f82e6b5af.png

程序员简历模板(900份)

61df07a0fbcd35367ffe0b6a43f29a57.png

55deb750e735a3624b875491d38a4a2b.png

报名及领取资料请添加小姐姐微信

如遇扫码受限,请添加微信:xx2068425757

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值