并发
九州殊口二
这个作者很懒,什么都没留下…
展开
-
Java 并发容器
文章目录1.并发集合简介ConcurrentHashMapCopyOnWriteArrayList1.并发集合简介ConcurrentHashMap:线程安全的HashMap,加锁力度更小CopyOnWriteArrayList:适用于在读多写少的场景下,性能优于ArrayListConcurrentLinkedQueue:线程安全的LinkedList,适用链表实现的高效并发队列BlockingQueue:这是一个接口,JDK内部通过链表、数组等方式实现了这个接口。表示阻塞队列,非常适合作为数原创 2020-06-17 14:40:50 · 157 阅读 · 0 评论 -
深入解析Java内存模型(JMM)
文章目录为什么要有内存模型并发编程的问题什么是内存模型什么是Java内存模型Java内存模型的实现总结为什么要有内存模型在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。内存模型,英文名Memory Model,他是一个很老的老古董了。他是与...转载 2020-04-06 16:30:53 · 245 阅读 · 0 评论 -
双重校验单例模式(DCL)懒汉模式
先上代码:public class MySingleton { //使用volatile关键字保其可见性 volatile private static MySingleton instance = null; private MySingleton(){} public static MySingleton getInstance() { ...原创 2020-04-05 21:57:33 · 778 阅读 · 0 评论 -
volatile关键字详解
文章目录volatile关键字是干嘛的可变可见性问题volatile解决可见性volatile解决有序性volatile原理synchronized 关键字和 volatile 关键字的区别单例模式volatile关键字是干嘛的JMM有三个特性:可见性、有序性、原子性。Java用很多关键字来保证它们,volatile就是其中之一。volatile关键字用于将Java变量标记为“正在存储在主存...原创 2020-04-05 21:11:42 · 282 阅读 · 0 评论 -
生产者与消费者模型
文章目录生产消费者模型采用synchronized锁以及wait notify方法实现采用阻塞队列实现生产消费者模型生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。生产消费者模式如下图。采用synchronized锁以及wait notify方法实现代码源自菜鸟教程//生产者消费者...原创 2020-03-29 17:13:30 · 261 阅读 · 0 评论 -
Java线程创建方式及对比
文章目录1.继承Thread类2.实现Runnable接口3.实现Callable接口4.三种方式的对比关于资源共享实现runnable接口继承Thread类1.继承Thread类继承Thread类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。创建Thread子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线...原创 2020-03-06 20:54:17 · 199 阅读 · 0 评论 -
线程池
文章目录1.什么是线程池2.为什么要用线程池?3.执行execute()方法和submit()方法的区别4. 如何创建线程池5.ThreadPoolExecutor 类分析5.1.参数分析5.2.线程池饱和策略6.一个简单的线程池Demo7.线程池原理线程池处理流程结构线程池状态参考文章:1.什么是线程池学习编程的小伙伴们会经常听到“线程池”、“连接池”这类的词语,可是到底“池”是什么意思呢?...原创 2020-03-07 11:28:27 · 271 阅读 · 0 评论 -
Java中的锁
文章目录1.Java中的锁2.线程是否需要对资源加锁——乐观锁与悲观锁2.1.乐观锁2.1.1.什么是CAS2.1.2.什么是版本号机制2.2.悲观锁2.2.1.Synchronized如何保证线程安全2.3.两种锁的使用场景2.4.CAS与synchronized的使用情景3.资源已被锁定,线程是否阻塞——自旋锁3.1.什么是自旋锁3.2.自旋锁的原理3.3.自旋锁的优缺点3.4.自旋锁的实现4...原创 2020-03-08 16:52:54 · 215 阅读 · 0 评论 -
解析synchronized关键字
文章目录1.导读2.使用方式修饰实例方法修饰静态方法修饰代码块3.synchronized 关键字的底层原理4.JDK1.6 之后的synchronized 关键字底层做了哪些优化概念一:Mark Word概念二:CAS偏向锁轻量级锁自旋锁和自适应自旋锁消除锁粗化5.Synchronized 和 ReenTrantLock 的对比1.导读《java多线程设计模式》有这样的一个例子:pulbi...原创 2020-03-08 00:09:09 · 265 阅读 · 0 评论 -
AQS
文章目录1.ReentrantLock和AQS的关系2.ReentrantLock加锁和释放锁的底层原理3.AQS原理4.AQS 对资源的共享方式面试的时候可能会面到的一个问题:谈谈你对AQS的理解?,什么,没听说过?呕吼,完蛋。那我们就来看看什么是AQS。1.ReentrantLock和AQS的关系首先我们来看看,如果用java并发包下的ReentrantLock来加锁和释放锁,是个什么...原创 2020-03-07 22:20:34 · 224 阅读 · 0 评论 -
Atomic 原子类与CAS
文章目录1.场景引入,问题凸现2.初步的解决方案:synchronized3.更高效的方案:Atomic原子类及其底层原理3.1.Atomic原子类是什么3.2. JUC 包中的原子类是哪4类?3.3.AtomicInteger 类常用方法3.4.Atomic原子类如何解决我们的问题3.5. 能不能给我简单介绍一下 AtomicInteger 类的原理3.6.CAS4.Java 8对CAS机制的优...原创 2020-03-07 19:18:33 · 711 阅读 · 0 评论