首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java
订阅
vhjy在掘金
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
Java 并发高频面试题:聊聊你对 AQS 的理解?
在Java多线程编程中,重入锁(ReentrantLock) 和信号量(Semaphore)是两个极其重要的并发控制工具。相信大部分读者都应该比较熟悉它们的使用(如果不清楚的小伙伴,赶快拿出书本翻阅一下)。 但是不知道大家是不是有了解过重入锁和信号量的实现细节? 我就带大家看一…
为什么ElasticSearch比MySQL更适合全文索引
熟悉 MySQL 的同学一定都知道,MySQL 对于复杂条件查询的支持并不好。MySQL 最多使用一个条件涉及的索引来过滤,然后剩余的条件只能在遍历行过程中进行内存过滤,对这个过程不了解的同学可以先行阅读一下《MySQL复杂where条件分析》。 上述这种处理复杂条件查询的方式…
HashMap为什么线程不安全
JDK1.7 中,由于多线程对HashMap进行扩容,调用了HashMap#transfer(),具体原因:某个线程执行过程中,被挂起,其他线程已经完成数据迁移,等CPU资源释放后被挂起的线程重新执行之前的逻辑,数据已经被改变,造成死循环、数据丢失。 JDK1.8 中,由于多线…
【理论篇】浅析分布式中的 CAP、BASE、2PC、3PC、Paxos、Raft、ZAB
个人公众号『码农札记』,欢迎关注,查看更多精彩文章。 在常见的分布式系统中,总会发生诸如机器宕机或网络异常(包括消息的延迟、丢失、重复、乱序,还有网络分区)等情况。基于此,产生了适应各种场景的一致性 破坏整个系统的一致性。 由于涉及理论较多,本文借鉴了好多博主的文章,反复认真研…
一文搞懂 CountDownLatch 用法和源码!
CountDownLatch 是多线程控制的一种工具,它被称为 门阀、 计数器或者 闭锁。这个工具经常用来用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。下面我们就来一起认识一下 CountDownLatch CountDownLatch 能够使一…
被leader喷对MySQL索引一无所知的我是如何一小时掌握MySQL索引
我:领导啊,我中午没午休,看了一个小时的索引,现在终于把MySQL的索引给精通了。 leader:诶呦,小伙子口气不小啊。来,那我来考考你 我:网上和书上都说索引是快速查询的数据结构。但是我觉得,这么回答其实并不是完全正确的。 第一个是比如找到柱面,即刺头需要移动到对准相应的磁…
并发编程之CountDownLatch原理与应用
控制并发流程的工具类,作用就是帮助我们程序员更容易的让线程之间合作,让线程之间相互配合来满足业务逻辑。比如让线程A等待线程B执行完毕后再执行等合作策略。 | CyclicBarrier | 线程会等待,直到足够多线程达到了事先规定的数目。一旦达到触发条件,就可以进行下一步的动作…
从源码分析Class.forName与ClassLoader的区别
在Java中Class.forName()和ClassLoader都是对类进行加载,我们也知道在Class.forName中会加载静态代码块,但是ClassLoader并不会加载静态代码块。 从以上我们也可以推出来,其实ClassLoader是遵循了双亲委派模型,最终会调用类加…
BlockingQueue(阻塞队列)详解
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常…
深入掌握底层源码常见的 CAS 原子编程
1. 无锁编程产出背景 2. CAS 如何实现的无锁编程 3. CAS 使用中的 “ABA” 痛点 4. 如何解决 “ABA” 问题