JUC
文章平均质量分 61
byteyoung
点击关注,永不迷路!
展开
-
AQS
前言:今天无意中看到了"中华石衫"大佬的公众号的文章,觉得很不错,就摘录下来了。1.写在前面:这篇文章,我们来聊聊面试时一个比较有杀伤力的问题:聊聊你对AQS的理解?之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题。当时那位同学内心估计受到了一万点伤害。。。因为首先,很多人可能连AQS是什么都不知道。或者仅仅是听说过AQS这个名词,但是可能连全称怎么拼写都不知道。更有甚者,可能会说:AQS?是不是一种思想?我们平时开发怎么来用AQS?总结起来,很多同学都对AQS有一种云里雾里的原创 2021-03-11 18:38:09 · 91 阅读 · 0 评论 -
AQS
文章目录①. 可重入锁②. 为什么要使用LockSupport③. JUC强大的三个工具类①. CountDownLatch(闭锁)②. CyclicBarrier③.Semaphore(信号量)④. LockSupport详解⑤. AbstractQueuedSynchronizer之AQS①. AQS是什么?②. AQS内部体系架构③. ReentrantLock开始解读AQS①. 代码展示:②. 从最简单的lock方法开始看看公平和非公平③. lock()④. tryAc原创 2021-03-10 15:20:22 · 95 阅读 · 0 评论 -
JUC多线程尚硅谷
JUC多线程及高并发JUC多线程及高并发一、请你谈谈对volatile的理解1、volatile是java虚拟机提供的轻量级的同步机制2、JMM(java内存模型)3、你在那些地方用过volatile二、CAS你知道吗1、compareAndSet----比较并交换2、CAS底层原理?对Unsafe的理解3、CAS缺点三、原子类AtomicInteger的ABA问题?原子更新引用?1、ABA如何产生2、如何解决?原子引用3、时间戳的原子引用四、我们知道ArrayList是线程不安全的,请编写一个不安全的原创 2021-03-10 10:39:01 · 528 阅读 · 0 评论 -
什么是线程安全,同步阻塞/同步非阻塞,异步阻塞/异步非阻塞
举个栗子1、你在家做饭,用普通的汤锅,米放进去,就站在锅边,傻等饭熟。——这叫同步阻塞是不是觉得浪费了大量的时间,于是你想提高时间的利用效率。2、还是用普通的汤锅,米放进去,然后继续回去打游戏,过一会就来看一次。——这叫同步非阻塞时间的利用率稍微提升了一点点,还有没有办法再提升一点呢?3、你去某宝淘了个电饭锅,饭熟了会自动跳闸的那种。米放进去,然后傻傻的看它怎么做饭的。——这叫异步阻塞这有什么意义呢?完全没利用好电饭锅的优势啊4、这回学聪明了,米放进去,按下按钮,然后就去打游戏了,等到跳闸原创 2020-09-23 16:41:25 · 283 阅读 · 0 评论 -
readWriteLock的使用
import java.util.HashMap;import java.util.Map;import java.util.concurrent.CountDownLatch;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantLock;import java.util.concurre.原创 2020-08-25 15:36:47 · 136 阅读 · 0 评论 -
Copy-on-write
含义:写入时复制(英语:Copy-on-write,简称COW)是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者(callers)同时要求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此作法主要的优点是如果调用者没有修改该资源,就不会有副本(priv原创 2020-08-24 15:10:19 · 897 阅读 · 0 评论 -
lock 顺序执行
lock中类似wait和notify的方法:await和signal/signalAll原理:lock中使用Condition类做为锁监视器,调用Condition的await()和signal()实现线程的等待和唤醒。实现代码:Lock lock=new ReentrantLock();Condition condition=lock.newCondition();lock.lock();try{ while(...){ condition.await();原创 2020-08-23 22:11:29 · 474 阅读 · 0 评论 -
JAVA并发编程(JUC)
java.util.concurrent 并发编程中使用的工具类java.util.concurrent.atomicjava.util.concurrent.locks1.进程/线程?进程:和操作系统有关系,后台运行的一个程序就是进程线程:轻量级的进程容灾备份线程,文字检查线程,QQ内在线传文件,在线聊天2.并发/并行多个线程同一时间点争取同一资源并发:同⼀时间段,多个任务都在执⾏(单位时间内不⼀定同时执⾏);并⾏:单位时间内,多个任务同时执⾏。你...原创 2020-08-22 17:01:45 · 413 阅读 · 0 评论