一级: 全部 文章阅读

存档时光 Timeline
2019年 共 6 篇
3月 共 2 篇
2019-03-11
Kafka系列 05——生产者源码分析 01:元数据更新 查看简介

KafkaProducer对元数据的管理和操作,是先行于数据发送环节的。元数据的完整、正确与否决定了是数据发送先决条件。KafkaProducer对元数据的更新操作与消息数据的发送操作虽然都需要经过网络I/O,但二者的实现略有差异

2019-03-01
Kafka系列 03——消费者的基本使用 查看简介

KafkaConsumer对象用于读取消息。创建KafkaConsumer对象与创建KafkaProducer对象非常相似。

2月 共 2 篇
2019-02-20
Kafka系列 02——生产者的基本使用 查看简介

Kafka生产者是提供给开发者用于向Kafka中写入消息的组件。

2019-02-12
Kafka系列 01——基本概念 查看简介

Kafka是分布式的、分区的且具有副本机制的消息服务器。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。Kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外Kafka集群有多个Kafka实例组成,每个实例(server)成为broker。无论是Kafka集群,还是Producer和Consumer都依赖于Zookeeper来保证系统可用性集群保存一些meta信息。

1月 共 2 篇
2019-01-11
Apache Kafka源码剖析 查看简介

《Apache Kafka源码剖析》旨在为读者阅读Kafka源码提供帮助和指导,让读者更加深入地了解Kafka的运行原理、设计理念,让读者在设计分布式系统时可以参考Kafka的优秀设计。《Apache Kafka源码剖析》的内容对于读者全面提升自己的技术能力有很大帮助。

2019-01-08
Java多线程 48—— Executors详解 查看简介

Executors是java.util.concurrent包提供一个用于创建各类线程池的工厂类,其中有大量的静态方法可以方便我们创建ThreadPoolExecutor和ScheduledThreadPoolExecutor线程池,本文将一一进行介绍。

2018年 共 14 篇
12月 共 3 篇
2018-12-22
Java多线程 47—— CompletionService详解 查看简介

JDK提供了CompletionService接口用于解决该问题。在它的实现类ExecutorCompletionService中,通过维护一个队列保存结束任务的Future,如果有任务结束,任务的Future会保存到队列中,从该队列中一定能拿到任务的返回结果;如果没有已经完成的任务,队列为空,取结果的线程才会进入阻塞等待。

2018-12-16
Java多线程 46—— ScheduledThreadPoolExecutor详解(二) 查看简介

ScheduledThreadPoolExecutor用于执行周期性或延时性的定时任务,它是在ThreadPoolExecutor的基础上实现的任务调度线程池,内部使用延时工作队列DelayedWorkQueue实现对任务的延时调度。DelayedWorkQueue内部使用一个初始容量为16的数组来保存任务,容量不够时会按照现有容量的1.5倍进行扩容,最大容量可达Integer.MAX_VALUE。

2018-12-01
Java多线程 45—— ScheduledThreadPoolExecutor详解(一) 查看简介

ScheduledThreadPoolExecutor用于执行周期性或延时性的定时任务,它是在ThreadPoolExecutor的基础上实现的任务调度线程池,内部使用延时工作队列DelayedWorkQueue实现对任务的延时调度。DelayedWorkQueue内部使用一个初始容量为16的数组来保存任务,容量不够时会按照现有容量的1.5倍进行扩容,最大容量可达Integer.MAX_VALUE。

11月 共 4 篇
2018-11-27
Java多线程 44—— ThreadPoolExecutor详解(二) 查看简介

ThreadPoolExecutor是线程池类,可以通俗的将它理解为存放一定数量线程的一个线程集合。线程池允许若个线程同时运行,同时运行的线程数量就是线程池的容量;当添加的到线程池中的线程超过它的容量时,会有一部分线程阻塞等待。线程池会通过相应的调度策略和拒绝策略,对添加到线程池中的线程进行管理。

2018-11-17
Java多线程 43—— ThreadPoolExecutor详解(一) 查看简介

ThreadPoolExecutor是线程池类,可以通俗的将它理解为存放一定数量线程的一个线程集合。线程池允许若个线程同时运行,同时运行的线程数量就是线程池的容量;当添加的到线程池中的线程超过它的容量时,会有一部分线程阻塞等待。线程池会通过相应的调度策略和拒绝策略,对添加到线程池中的线程进行管理。

2018-11-07
Java多线程 42—— Runnable、Callable和Future详解 查看简介

对于Runnable接口我们其实是很熟悉的,在前面对线程的使用中经常接触它。Runnable接口是针对单纯的无返回值任务,但在Java的多线程机制中,还提供了有返回值任务相应的接口,接下将详细讨论这些线程执行的任务。

2018-11-01
Java多线程 41—— 线程池基础 查看简介

从上一篇文章可知,ThreadPoolExecutor是我们最常用的线程池类,在介绍该类之前,我们先研究一下它的父类。

10月 共 4 篇
2018-10-22
Java多线程 40—— 线程池整体框架 查看简介

本文给出了Java线程池涉及到的各个组件的简介。

2018-10-18
Java多线程 39—— ConcurrentLinkedQueue详解 查看简介

ConcurrentLinkedQueue是线程安全的队列,它适用于高并发的场景。它是一个基于链接节点的无界线程安全队列,按照FIFO(先进先出)原则对元素进行排序。队列元素中不可以放置null元素(内部实现的特殊节点除外)。

2018-10-16
Java多线程 38——LinkedBlockingDeque详解 查看简介

LinkedBlockingDeque是双向链表实现的双向并发阻塞队列,该阻塞队列同时支持FIFO和FILO两种操作方式,即可以从队列的头和尾同时操作(添加或删除);并且该阻塞队列是支持线程安全。此外,LinkedBlockingDeque还是可选容量的(防止过度膨胀),即可以指定队列的容量。

2018-10-02
Java多线程 37——LinkedBlockingQueue详解 查看简介

LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按FIFO(先进先出)排序元素,新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素。链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低。

9月 共 3 篇
2018-09-30
Java多线程 36——ArrayBlockingQueue详解 查看简介

ArrayBlockingQueue是数组实现的线程安全的、有界的阻塞队列。

2018-09-24
定制Git的Commit Message模板 查看简介

使用良好的Commit Message结构可以使我们提交时的备注信息更清晰,我们可以将Commit Message定义为三个部分:Header、Body和Footer,其中Header必须有,Body和Footer可以按情况省略。

2018-09-15
Java多线程 35——ConcurrentSkipListSet详解 查看简介

ConcurrentSkipListSet是线程安全的有序的集合,适用于高并发的场景。

推荐阅读

Java虚拟机06——垃圾收集器之CMS

Java
Java虚拟机

2015-01-29 0 351

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和...

最热阅读

Java虚拟机06——垃圾收集器之CMS

Java
Java虚拟机

2015-01-29 0 351

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和...

标签墙

关于 [5]
本站相关 [4]
Java [142]
语言基础 [37]
Java集合 [20]
反编译 [1]
Java IO [27]
纳粹 [1]
二战 [1]
Java虚拟机 [21]
Java Web基础 [9]
软件工具使用 [9]
Mac [3]
Java Web框架 [25]
MySQL [9]
XenServer [4]
大数据 [45]
流式处理 [22]
基础组件 [21]
Linux [1]
数据结构 [0]
HBase [5]
分布式存储 [5]
Java多线程 [47]
Java并发 [32]
NIO [4]
Git [5]
Spring [1]
Hive [3]
Nginx [4]
JUC相关 [3]
编辑器 [1]
JUC锁 [12]
Spark [9]
JUC集合 [12]
线程池 [9]
源码解析 [1]
Kafka [5]