随笔分类 - juc
Java并发编程
摘要:前言 AQS,英文全称叫 AbstractQueueSynchronizer,中文全称叫抽象队列同步器 一、先从字节跳动及其他大厂面试题说起 二、前置知识 2.1 公平锁和非公平锁 2.2 可重入锁 2.3 LockSupport 2.4 自旋锁 2.5 数据结构之链表 2.6 设计模式之模板设计模
阅读全文
摘要:一、原始构成 synchronized是关键字属于JVM层面: monitorenter(底层是通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象,只有在同步块或方法中才能调用wait/notify等方法) monitorexit Lock是具体类(java.u
阅读全文
摘要:ABA问题 在没有加版本号之前,CAS会出现ABA问题:当一个值原本已经被当前线程读取到,准备通过CAS(自旋锁)将其修改的时候,突然这个时候由于网络卡顿、线程中断等一系列状况的原因,中途来了另外一个线程,将当前线程所期望的值修改成其他的值,然后又修改回来,这期间当前线程没有察觉,看了下此时的值跟预
阅读全文
摘要:一、CountDownLatch 从以下版本开始: 1.5 适用场景:当我们需要等待其他所有业务都完成后,才能做一些业务操作的时候,可以用CountDownLatch来实现(类似倒计时) 常用方法: 1、构造器 2、countDown() 减少锁存器的计数,如果计数达到零,释放所有等待的线程。 3、
阅读全文