多线程
夜晚的猫头鹰
这个作者很懒,什么都没留下…
展开
-
线程池的使用原理分析
文章目录线程池的使用原理分析一、包含的知识点二、为什么需要线程池三、线程池API3.1 创建线程的方式3.2 创建线程池的方式3.3 线程统一封装类型ThreadPoolExecutor四、线程池原理分析4.1 线程执行入口execute4.2 创建工作线程addWorker4.3 线程核心处理逻辑runWorker4.4 拒绝策略4.5 线程池注意事项五、Callable/Future原理分析5.1 Callable/Future原理分析5.2 FutureTask状态分类5.3 run方法执行5.4 g原创 2020-05-26 21:38:02 · 257 阅读 · 0 评论 -
阻塞队列、原子类原理分析 -- ArrayBlockingQueue、AtomicInteger
文章目录阻塞队列、原子类原理分析一、常用阻塞队列1.2 常用的阻塞队列1.3 阻塞队列的常用方法二、ArrayBlockingQueue原理分析2.1 添加操作2.2 删除操作三、原子操作类3.1 原子类的分类3.2 原理分析 阻塞队列、原子类原理分析 一、常用阻塞队列 ### 1.1 使用场景 阻塞队列比较普遍的使用场景是生产者、消费者, 以便于服务解耦,提高应用性能; 而分布式架构应用比较频繁的是消息队列比如:Kafka、Rocketmq, 阻塞队列类似于broker, 生产者和消费者类似于服原创 2020-05-25 17:03:56 · 231 阅读 · 0 评论 -
常用并发工具原理分析(Condition、CountDownLatch、CyclicBarrier、Semaphore)
目录常用并发工具原理分析一、包含的知识点二、Condition原理2.1 Condition简单使用2.2 Condition await源码分析2.3 Condition signal源码分析2.4 被阻塞的线程唤醒后的操作2.5 总结三、CountDownLatch3.1 CountDownLatch作用3.2 CountDownLatch await源码分析3.3 CountDownLatch countdown源码分析四、CyclicBarrier4.1 CyclicBarrier知识4.2 Cyc原创 2020-05-22 18:15:25 · 586 阅读 · 0 评论 -
ReentrantLock原理分析
目录ReentrantLock原理分析一、包含的知识点二、Lock2.1 常见的锁的实现2.2 Lock类关系图三、**ReentrantLock 重入锁**3.1 **为什么需要重入锁?**3.2 **ReentrantReadWriteLock**3.3 AQS(AbstractQuenedSynchronized)四、ReentrantLock 加锁源码分析4.1 加锁的入口4.2 NonfairSync.lock()4.3 AQS.acquire4.4 AQS.addWaiter4.5 AQS.ac原创 2020-05-20 17:46:02 · 203 阅读 · 0 评论 -
多线程原理分析(二) -- 超详细
目录多线程原理分析(二)一、包含的知识点二、如何保证共享变量的可见性2.1 可见性问题2.2 volatile 关键字是如何保证可见性的三、可见性本质3.1 缓存一致性3.2 缓存一致性协议3.3 MESI存在的问题3.4 CPU内存屏障四. Java内存模型4.1 JMM解决的问题4.2 JMM内存屏障分类五、happen before 多线程原理分析(二) 上篇文章, 我们从锁的存储格式(Header、Mark Word)、锁升级(偏向锁、轻量级锁、重量级锁)的角度分析了多线程的原理, 这片文章我原创 2020-05-19 16:00:42 · 225 阅读 · 0 评论 -
多线程原理分析 -- synchronized (超详细)
目录多线程处理之synchronized一、包含的知识点二、多线程带来的问题2.1 多线程带来的好处、坏处2.2 线程安全问题的本质2.3 解决线程安全问题方式三、Synchronized基本认识3.1 synchronized 加锁方式3.2 锁是如何存储的3.2.1 锁包含的数据内容3.2.2 JVM创建对象实现3.2.3 为什么任何对象都可以实现锁3.3 synchronized锁升级3.3.1 偏向锁原理3.3.2 偏向锁获取/释放逻辑3.3.3 轻量级锁获取/释放逻辑3.3.4 重量级锁获取/释放原创 2020-05-18 20:19:50 · 313 阅读 · 0 评论