摘要: CompositeFuture 是一种特殊的 Future,它可以包装一个 Future 列表,从而让一组异步操作并行执行;然后协调这一组操作的结果,作为 CompositeFuture 的结果。本文将介绍 CompositeFuture 的用法以及几种协调方式,掌握这些内容有助于解决多个 Futu 阅读全文
posted @ 2022-05-01 16:41 Robothy 阅读(1085) 评论(0) 推荐(0) 编辑
摘要: Future 和 Promise 是 Vert.X 4.0中的重要角色,贯穿了整个 Vert.X 框架。掌握 Future/Promise 的用法,是用好 Vert.X、编写高质量异步代码的基础。本文从 Future/Promise 的概念出发,介绍这两者的定义以及如何理解其定义;然后介绍 Prom 阅读全文
posted @ 2022-04-28 09:07 Robothy 阅读(2435) 评论(0) 推荐(0) 编辑
摘要: Java 中的异步 I/O 简称 AIO, A 即 Asynchronous。AIO 在 JDK1.7 时引入,基于操作系统提供的异步 I/O 通信模型,封装了一些进行异步 I/O 操作的 API。 1. 异步 I/O 模型 学习 Java I/O 相关操作之前应该先了解其背后的 I/O 模型。Ja 阅读全文
posted @ 2022-01-19 20:35 Robothy 阅读(832) 评论(0) 推荐(0) 编辑
摘要: 一个中大型的 Java 基础框架项目往往包含许多 JAR 包,如果将这些 JAR 包单独发布给业务开发使用,这些不同版本 JAR 包间的兼容性维护将变得十分麻烦。为了解决这个问题,可以让一个特殊的模块引用这些 JAR 包,将一组 JAR 包兼容的版本号定义在这个模块中,对外发布时只发布这个特殊模块。 阅读全文
posted @ 2021-04-19 15:18 Robothy 阅读(2015) 评论(0) 推荐(0) 编辑
摘要: Gradle 插件代码可以在 build.gradle 中,buildSrc 项目中,以及独立的插件项目中编写。本文将介绍如何在一个独立的项目中使用 Java 语言编写 Gradle 插件,并发布到仓库中。 1. 创建项目 Gradle 插件项目和普通的 Java 项目没有什么不同,普通项目是基于其 阅读全文
posted @ 2021-03-03 09:30 Robothy 阅读(2027) 评论(0) 推荐(0) 编辑
摘要: 本文将介绍 Jenkins 初学者如何在学习环境使用 Docker 能够快速安装 Jenkins,本文内容不适用于生产环境。 1 Jenkins 的 Docker 镜像 Docker 官方曾经提供了 Docker 镜像的安装镜像,镜像名直接就是 jenkins,但 Docker 官方提供的镜像几年前 阅读全文
posted @ 2021-02-26 17:29 Robothy 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 选择器 Selector 是 I/O 多路复用模型的核心组件,它可以监控实现了 SelectableChannel 接口的通道的就绪情况。基于多路复用(multiplexing) I/O 模型,单线程的 Java 程序能够处理数万个连接,极大提高了系统的并发数。 1. 多路复用 I/O 模型 I/O 阅读全文
posted @ 2021-01-15 14:30 Robothy 阅读(1455) 评论(0) 推荐(0) 编辑
摘要: FileChannel 提供了一种通过通道来访问文件的方式,它可以通过带参数 position(int) 方法定位到文件的任意位置开始进行操作,还能够将文件映射到直接内存,提高大文件的访问效率。本文将介绍其详细用法和原理。 1. 通道获取 FileChannel 可以通过 FileInputStre 阅读全文
posted @ 2021-01-13 11:35 Robothy 阅读(10724) 评论(0) 推荐(4) 编辑
摘要: Channel 是 NIO 的核心概念,它表示一个打开的连接,这个连接可以连接到 I/O 设备(例如:磁盘文件,Socket)或者一个支持 I/O 访问的应用程序。Java NIO 使用缓冲区和通道来进行数据传输。 Java 应用IO设备缓冲区通道 一个通道在创建的时候被打开,可以调用 isOpen 阅读全文
posted @ 2021-01-11 17:16 Robothy 阅读(1497) 评论(8) 推荐(2) 编辑
摘要: 缓冲区 Buffer 是 Java NIO 中一个核心概念,它是一个线性结构,容量有限,存放原始类型数据(boolean 除外)的容器。 1. Buffer 中可以存放的数据类型 java.nio.Buffer 是一个接口,有 7 个重要的子类,对应着 7 种(除 boolean 外)原始数据类型: 阅读全文
posted @ 2021-01-02 17:28 Robothy 阅读(630) 评论(0) 推荐(1) 编辑