摘要:
背景 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Mar
阅读全文
posted @ 2021-04-04 19:16
H__D
阅读(626)
推荐(0)
摘要:
一、介绍 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,下
阅读全文
posted @ 2021-04-03 15:49
H__D
阅读(467)
推荐(0)
摘要:
一、Fork/Join 基本介绍和使用 参考:【Java多线程】 Fork/Join框架(三十) 二、线程池结构 及 调用图 1、线程池结构图 2、线程池调用图 3、线程池ctl属性变化图 4、WorkQueue的scanState属性变化图 三、示例代码 1 public class CountT
阅读全文
posted @ 2021-04-02 13:22
H__D
阅读(281)
推荐(0)
摘要:
一、什么是Fork/Join 框架 Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解一下Fork/Join框架。Fork就是把一个大任务切分为若干子任务
阅读全文
posted @ 2021-04-02 13:12
H__D
阅读(190)
推荐(0)
摘要:
一、Iterator介绍 Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合。 Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了
阅读全文
posted @ 2021-03-31 12:35
H__D
阅读(936)
推荐(0)
摘要:
ScheduledThreadPoolExecutor,它是一个计划任务线程池,可以执行定时任务或者是计划任务。 ScheduledThreadPoolExecutor 继承了ThreadPoolExecutor,需要了解 ThreadPoolExecutor 的原理,参考:【Java多线程】线程池
阅读全文
posted @ 2021-03-31 01:42
H__D
阅读(223)
推荐(0)
摘要:
ScheduledThreadPoolExecutor继承自ThreadPoolExecutor。它主要用来在给定的延迟之后运行任务,或者定期执行任务。ScheduledThreadPoolExecutor的功能与Timer类似,但ScheduledThreadPoolExecutor功能更强大、更
阅读全文
posted @ 2021-03-31 00:51
H__D
阅读(471)
推荐(0)
摘要:
一、Executor框架 在Java中,使用线程来异步执行任务。Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源。同时,为每一个任务创建一个新线程来执行,这种策略可能会使处于高负荷状态的应用最终崩溃。 Java的线程既是工作单
阅读全文
posted @ 2021-03-31 00:33
H__D
阅读(173)
推荐(0)
摘要:
阅读本文,请先了解PriorityQueue的使用(【Java】PriorityQueue 源码分析 ),以及AQS等 一、DelayQueue介绍 一个无限制的blocking queue的Delayed元素,其中元素只能在其延迟到期时才被使用。 队列的头是Delayed元素,其延迟期满后保存时间
阅读全文
posted @ 2021-03-30 17:27
H__D
阅读(135)
推荐(0)
摘要:
阅读本文前,请先了解AQS,阻塞队列,优先级队列,最小堆数据结构 参考:【Java多线程】队列同步器AQS(十一),【Java多线程】ArrayBlockingQueue阻塞队列原理分析(十六),【Java】PriorityQueue 的实现原理 一、PriorityBlockingQueue介绍
阅读全文
posted @ 2021-03-30 15:50
H__D
阅读(106)
推荐(0)