随笔分类 -  并发系列

摘要:Disruptor 的大名从很久以前就听说了,但是一直没有时间;看完以后才发现其内部的思想异常清晰,很容易就能前移到其他的项目,所以仔细了解一下还是很有必要的这。篇博客将主要从源码角度分析,Disruptor 为什么那么快,在此之前可以先查看 "Disruptor 详解 一" ,能够对 Disrup 阅读全文
posted @ 2019-07-14 18:08 三枣 阅读(1022) 评论(0) 推荐(1)
摘要:这篇博客将主要通过几个示例,简单讲述 Disruptor 的使用方法; 一、disruptor 简介 "Disruptor" 是英国外汇交易公司 LMAX 开发的一个 无锁 高性能的线程间消息传递的框架。目前包括 Apache Storm、Camel、Log4j2 等知名项目都是用了 Disrupt 阅读全文
posted @ 2019-07-10 16:45 三枣 阅读(2010) 评论(0) 推荐(0)
摘要:文本将主要讲述 一个特殊的子类 ,主要用于执行周期性任务;所以在看本文之前最好先了解一下 ,可以参考 "ThreadPoolExecutor 详解" ;另外 中使用了延迟队列,主要是基于完全二叉堆实现的,可以参考 "完全二叉堆" ; 一、ScheduledThreadPoolExecutor 结构概 阅读全文
posted @ 2019-04-24 09:51 三枣 阅读(10238) 评论(0) 推荐(6)
摘要:本文将主要介绍我们平时最常用的线程池 ,有可能你平时没有直接使用这个类,而是使用 的工厂方法创建线程池,虽然这样很简单,但是很可能因为这个线程池发生 OOM ,具体情况文中会详细介绍; 二、ThreadPoolExecutor 概览 的继承关系如图所示: 其中: Executor :定义了 异步接口 阅读全文
posted @ 2019-04-15 20:12 三枣 阅读(3915) 评论(2) 推荐(1)
摘要:本文将主要讲解 J.U.C 中的 Future 框架,并分析结合源码分析其内部结构逻辑; 一、Future 框架概述 JDK 中的 Future 框架实际就是 Future 模式的实现,通常情况下我们会配合线程池使用,但也可以单独使用;下面我们就单独使用简单举例; 1. 应用实例 打印: 如上面代码 阅读全文
posted @ 2019-04-07 19:25 三枣 阅读(937) 评论(0) 推荐(0)
摘要:本文将主要讲述 的内部结构和实现逻辑,在看本文之前最好先了解一下 队列锁, 就是根据 队列锁的变种实现的,因为本身 比较复杂不容易看清楚他本身的实现逻辑,所以查看 队列锁的实现,可以帮助我们理清楚他内部的关系;关于队列锁的内容可以参考 , "CLH、MCS 队列锁简介" ; 一、AQS 结构概述 在 阅读全文
posted @ 2019-04-04 20:51 三枣 阅读(1351) 评论(0) 推荐(1)
摘要:这篇博客主要是作为 AbstractQueuedSynchronizer 的背景知识介绍;平时接触也非常的少,如果你不感兴趣可以跳过;但是了解一下能更加的清楚 AQS 的设计思路; 一、自旋锁简介 通常情况下解决多线程共享资源逻辑一致性问题有两种方式: 互斥锁:当发现资源被占用的时候,会阻塞自己直到 阅读全文
posted @ 2019-03-20 20:42 三枣 阅读(6385) 评论(0) 推荐(4)
摘要:本文将主要结合源码讲述 ThreadLocal 的使用场景和内部结构,以及 ThreadLocalMap 的内部结构;另外在阅读文本之前只好先了解一下引用和 HashMap 的相关知识,可以参考 "Reference 框架概览" 、 "Reference 完全解读" 、 "HashMap 相关" ; 阅读全文
posted @ 2019-03-15 11:03 三枣 阅读(3871) 评论(0) 推荐(1)
摘要:本文主要结合 源码,梳理 Java 线程的整体脉络; 一、线程概述 对于 Java 中的线程主要是依赖于系统的 API 实现的,这一点可以从 ;源码中关键的方法都是 方法看出,也可以直接查看 OpenJDK 源码看出来,这一点后面还会讲到;对于 JDK1.8 而言,他的 Windows 版和 Lin 阅读全文
posted @ 2019-03-14 10:36 三枣 阅读(1817) 评论(0) 推荐(1)