首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
juc
订阅
剑花落影
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
Redis——由分布式锁造成的重大事故
基于Redis使用分布式锁在当今已经不是什么新鲜事了。本篇文章主要是基于我们实际项目中因为redis分布式锁造成的事故分析及解决方案。 背景:我们项目中的抢购订单采用的是分布式锁来解决的。有一次,运营做了一个飞天茅台的抢购活动,库存100瓶,但是却超卖了!要知道,这个地球上飞天…
Java面试必问:ThreadLocal终极篇
张三最近天气很热心情不是很好,所以他决定出去面试跟面试官聊聊天排解一下,结果刚投递简历就有人约了面试。 我丢,什么情况怎么刚投递出去就有人约我面试了?诶。。。真烦啊,哥已经不在江湖这么久了,江湖还是有哥的传说,我还是这么抢手的么?太烦恼了,帅无罪。 张三的心态一下子就崩了,出来…
CountDownLatch和CyclicBarrier 傻傻的分不清?超长精美图文又来了
并发编程的三大核心是分工,同步和互斥。在日常开发中,经常会碰到需要在主线程中开启多个子线程去并行的执行任务,并且主线程需要等待所有子线程执行完毕再进行汇总的场景,这就涉及到分工与同步的内容了 其实现原理是不停的检查 join 线程是否存活,如果 join 线程存活,则 wait…
高并发编程从入门到精通(四)
面试中最常被虐的地方一定有并发编程这块知识点,无论你是刚刚入门的大四萌新还是2-3年经验的CRUD怪,也就是说这类问题你最起码会被问3年,何不花时间死磕到底。消除恐惧最好的办法就是面对他,奥利给!(这一系列是本人学习过程中的笔记和总结,并提供调试代码供大家玩耍 本章内容本来是要…
个人珍藏的80道多线程并发面试题(1-10答案解析)
1. synchronized的实现原理以及锁优化? synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间只能被一个线程访问。 Monitor其实是一种「同步工具」,也可以说是一种「同步机制」。 在Java虚拟机(HotSpot)中,Monitor是…
精美图文讲解Java AQS 共享式获取同步状态以及Semaphore的应用
差别只在这里,所以我们就来看看 setHeadAndPropagate(node, r) 到底干了什么,我之前说过 JDK 源码中的方法命名绝大多数还是非常直观的,该方法直译过来就是 【设置头并且传播/繁衍】。独占式只是设置了头,共享式除了设置头还多了一个传播,你的疑问应该已经…
AQS原理分析
AQS,是Abstract Queue Synchronizer的简称,即抽象的队列同步器。 接下来,我们来看看ReentrantLock是如何借助AQS来实现独占锁的。 在第一步中,一上来就使用CAS对 state 变量进行设值,如果设值成功的话,lock 方法直接返回,表明…
搞定ReentrantReadWriteLock 几道小小数学题就够了
ReadWriteLock 直译过来为【读写锁】。现实中,读多写少的业务场景是非常普遍的,比如应用缓存 之前提到的互斥锁都是排他锁,也就是说同一时刻只允许一个线程进行访问,当面对可共享读的业务场景,互斥锁显然是比较低效的一种处理方式。为了提高效率,读写锁模型就诞生了 你瞧,使用…
不会用Java Future,我怀疑你泡茶没我快, 又是超长图文!!
如果你运行上述示例代码,主线程调用 future.get() 方法会阻塞自己,直到子任务完成。我们也可以使用 Future 方法提供的 isDone 方法,它可以用来检查 task 是否已经完成了,我们将上面程序做点小修改: setException 和 set 方法非常相似,…
基础篇:详解锁原理,synchronized、volatile+cas底层实现
悲观锁,每次去请求数据的时候,都认为数据会被抢占更新(悲观的想法);所以每次操作数据时都要先加上锁,其他线程修改数据时就要等待获取锁。适用于写多读少的场景,synchronized就是一种悲观锁 在请求数据时,觉得无人抢占修改。等真正更新数据时,才判断此期间别人有没有修改过(预…