技术aqs

为什么aqs的同步队列已经实现了fifo,还有不公平锁呢,那不已经是公平锁了吗,已经满足先进先出了?大佬给解答一下,感谢
全部评论
非公平锁会有两次cas抢锁,都没抢到锁会进入队列等待,具体细节可以看下源码
1 回复 分享
发布于 2020-01-09 18:58
维护队列的公平性需要而外的代价,默认非公平锁
点赞 回复 分享
发布于 2020-01-09 20:37
因为线程进队列前会cas抢锁,把cas去掉就是公平锁了
点赞 回复 分享
发布于 2020-01-09 20:16

相关推荐

11-25 01:25
门头沟学院 Java
1. java里面string类型,它能不能继承?2. JVM,你有一些了解吗?3. 你对整个类加载的机制有一些了解吗?比如说他累的一个生命周期,以及他的一个工作流程是咋样。4. 有些场景会打破那个双亲委派模型的机制。你有了解过吗5. 项目中有没有遇到一些出现内存泄露的问题6. java里面的对象其实在内存中也有一个内存模型。你有了解吗?(我回答了有哪些部分)7. 这几个部分你可以介绍一下,它大概是有什么作用8. 垃圾回收机制知道吗?说一下原理,以及目前这边里面一些比较主流的一些回收器。9. 性能调优有做过吗?就比如说当前可能比如说机器负载过高,然后去排查一下到底是哪一个线程会导致它整个资源使用比较紧张的情况10. 什么是线程安全11. java里面有哪些加锁的方式12. 说一下乐观锁13. 说一下CAS和ABA问题14. 死锁的必要条件有哪些?15. 说一下银行家算法16. 说一下threadlocal17. threadlocal的实现原理18. threadlocal会内存泄露,原因是什么?19. 了解过线程安全容器吗?20. 说一下ConcurrentHashMap21. java里面有哪些创建线程的方法22. 线程池在java里面有哪些?就是定义好的线程池,就可以简单说一说。23. 如果让你去自定义一个线程池的话,它有哪些需要去注意的?24. 有哪些具体的拒绝策略,以及为什么要拒绝。25. AQS你用过吗?26. 说一下数据库里面的那个ACID27. 索引它的一个原理你有了解吗?28. 索引创建的原则29. 实践中,有没有使用索引的经验30. 说一下最左前缀匹配原则31. 什么情况下索引才会失效?这个你平时有去做一些问题的一些排查和定位吗?32. 说一下传输层的协议33. TCP怎么保证可靠传输34. 你刚刚说有一些拥塞控制,然后这拥塞控制有一些算法你有了解吗?35. 说你对分布式有一些了解吗?一下分表分库36. 场景:针对淘宝订单怎么去对数据做一个分库分表(会疯狂追问)37. 说一下分布式的框架38. TCC有了解吗?39. 最近AI不是比较热吗,AI有没有对他有一定的了解40. 然后是项目拷打41. 2道算法题,求根节点到叶子节点的数字之和,多线程打印a,b,c
点赞 评论 收藏
分享
12-03 09:24
复旦大学 Java
性格问题,面试之前非常紧张,没有录音,说一下记得的内容8.28一面(95min)1.子类与父类的加载过程,静态方法重写,静态代码块2.Java中sync阻塞与可重入是怎么实现的,轻量级锁这么可重入,重量级锁维护了wait set3.sync锁升级,AQS4.用户态,内核态5.wait与sleep,调用后操作系统发生了什么,sleep是怎样唤醒的6.concurrenthashmap介绍,size()怎么个流程7.单例模式,双重校验锁,volatile机制,可见性原理(MESI),直接将sync加方法上的锁粒度问题,类加载机制的懒汉8.MySQL中select语句执行流程9.事务与并发MVCC10.rr隔离级别下的间隙锁导致的死锁问题11.索引的注意事项12.uuid与自增id,顺序写与随机写,空间占用,可能导致极端情况varchar数据存不下导致的行溢出问题,同时网络消耗(其实这都不重要,能消耗多少)11.mysql能否保证数据不丢失12.事务注解失效的情况,你是怎么避免的,主要说了代理类,吃异常的一些问题13.spring循环依赖解决,两级缓存能否解决,可以,只是需要实例化后都暴露且暴露代理类,三级缓存提供了一个延迟以及按需加载的思想(不知道理解的对不对),判断是否需要加载代理类,以及需要时才提前暴露14.mybatis执行流程,缓存有了解吗,说一下优缺点15.实习问题手撕:链表加法9.3二面(65min)1.聊一下hashmap,负载因子与len = 8锁涉及到的概率问题,树化的优缺点2.介绍concurrenthashmap -> CAS + sync + volatile,主要说一下尽量使用用户态的CAS去尝试,这点再AQS中也有体现(不知道我的理解有没有问题)3.你说了concurrenthashmap 这么多优点,那有没有缺点 -> 主要提了一下并发机制,常见的缓存,MVCC中rc,rr允许读旧数据,尽管volatile无需加锁,但cpu缓存一致性时也存在消耗,可能在读写并发量较高时性能有所缺陷4.MySQLselect语句流程(我真绷不住了,一面问了我没复习)5.MySQL如何解析到select语法错误的,客户端连接时,用户名密码存在错误时MySQL如何解决的6.介绍B+树,主要从多叉有序平衡,树高来说7.你说了B+树有这么多优点,那有没有缺点,这边主要讲了并发量高的insert/delete场景下页分裂时锁整棵树,讲了B-link树的一些优化点,谈到了跳表设计机制8.说一下常用的jdk,1.8的新特性,lambda实现原理,功能性接口9.实习拷打手撕:山峰数组二分找变化点下标补充:简历上的实习内容有些不清楚,还好找同事咨询了,不然也是难绷有保底心态确实会不一样9.6 oc
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务