0.1为何写作本书

异步编程是可以让程序并行运行的一种手段,其可以让程序中的一个工作单元与主应用程序线程分开独立运行,使用它有许多好处,例如可以提高应用程序的性能和响应能力。

虽然Java中不同技术域提供了相应的异步编程技术,但是对异步编程技术的描述散落到了不同技术域的技术文档中,并没有一个统一的地方对这些技术进行梳理归纳。另外这些技术之间是什么关系,各自的出现都是为了解决什么问题,我们也很难找到资料来解释。

本书的出现则是为了打破这种局面,本书旨在把Java中相关的异步编程技术进行归纳分类总结,然后呈现给大家,让大家可以有一个统一的地方来查看与探究。

0.2本书特色

本书涵盖了Java中常见的异步编程场景,这包含单JVM内的异步编程、以及跨主机通过网络通讯的远程过程调用的异步调用与异步处理、以及Web请求的异步处理等等。

本书在讲解Java中每种异步编程技术时都附有案例,以便理论与实践进行结合。

本书在讲解每种异步编程技术时大多都会对其实现原理进行讲解,以便让读者知其然也知其所以然。

本书对最近比较火的反应式编程以及WebFlux的使用与原理解析有一定深入的探索。

0.3 本书读者对象

本书适用于有一定Java编程基础,并对Java并发编程、Java异步编程、反应式编程感兴趣的读者。

0.4 如何阅读本书

对于初学者,建议按照本书编写的章节顺序进行学习,因为本书是按照从简到难的顺序编写的,并且每章都有一些代码示例让大家可以动手实践,以便加深理解。如何你对Java并发编程与异步编程有一定的基础,那么你可以直接从目录查看感兴趣的章节进行学习。本书总共分为9个章节,内容如下:

第一章主要讲解异步编程的概念和作用,以及在日常开发中都有哪些异步编程的场景;

第二章则讲解最基础的显示使用线程和线程池来实现异步编程,以及其存在的缺点;

第三章内容比较丰富,主要讲解JDK中的各种Future,包含如何使用Future实现异步编程,以及其内部实现原理,最后讲解了如何结合JDK8 Stream 和Future实现异步编程;

第四章讲解Spring框架中提供的异步执行能力,包含Spring中如何对TaskExecutor进行的抽象,以及如何使用注解@Async实现异步编程,以及其内部实现原理;

第五章讲解比较火的反应式编程相关,包含什么是反应式编程,以及如何使用反应式编程规范的实现库RxJava和Reactor库实现异步编程;

第六章讲解Web Servlet的异步非阻塞处理,这包含Servlet3.0规范如何提供异步处理能力的,以及Servlet3.1规范如何解决IO阻塞问题的,以及Spring MVC中如何使用异步处理能力;

第七章讲解与Servlet技术栈并行存在的有Spring5.0提出来的Spring WebFlux的异步非阻塞处理,包含Spring WebFlux的由来、Spring WebFlux的并发模型、两种编程模型,以及如何使用Spring WebFlux来进行服务开发,Spring WebFlux内部实现原理是怎样的;

第八章则概要介绍了业界为方便实现异步编程而设计的一些框架和中间件,这包含异步、基于事件驱动的网络编程框架Netty、高性能RPC框架Apache Dubbo、高性能线程间消息传递库Disruptor、异步基于事件驱动的编程框架-Akka、高性能分布式消息平台-Apache RocketMq ;

第九章则介绍新兴的Golang语言如何从语言层面提供了强大的异步编程能力。

0.5 业界推荐

java 异步写_Java异步编程实战相关推荐

  1. java 并发测试程序_java并发编程实战:第十二章---并发程序的测试

    并发程序中潜在错误的发生并不具有确定性,而是随机的. 安全性测试:通常会采用测试不变性条件的形式,即判断某个类的行为是否与其规范保持一致 活跃性测试:进展测试和无进展测试两方面,这些都是很难量化的(性 ...

  2. 《亿级流量JAVA高并发与网络编程实战》笔记--------更新中

    <亿级流量JAVA高并发与网络编程实战>笔记 第一章 高并发概述 "高并发技术" 是一个广义的概念,是指一种高效的地实现并发需求的解决方案,是技术领域的名称,可以包含架 ...

  3. Java并发编程实战_阿里P9整理分享的亿级流量Java高并发与网络编程实战PDF

    前言 为了帮助初级开发者快速掌握高并发.网络编程.微服务.海量数据的处理这些实用技术,本文以"理论+范例"的形式对各个知识点进行了详细的讲解,力争让读者在实践中快速掌握相关知识. ...

  4. 阿里P9整理分享的亿级流量Java高并发与网络编程实战PDF

    前言 有人调侃我们说: 程序员不如送外卖.送外卖是搬运食物,自己是搬运代码,都不产出新的东西-- 透支体力,又消耗健康,可替代性极强,30岁之后就要面临被优化的危险-- 想跳槽,但是更高的平台难进,同 ...

  5. java 异步记录日志_java异步写日志到文件中实现代码

    java异步写日志到文件中详解 实现代码: package com.tydic.ESUtil; import java.io.File; import java.io.FileWriter; impo ...

  6. java线程池_Java 并发编程 线程池源码实战

    作者 | 马启航 杏仁后端工程师.「我头发还多,你们呢?」 一.概述 笔者在网上看了好多的关于线程池原理.源码分析相关的文章,但是说实话,没有一篇让我觉得读完之后豁然开朗,完完全全的明白线程池,要么写 ...

  7. java 多异步调用_java 异步调用与多线程

    异步与多线程的区别 一.异步和多线程有什么区别?其实,异步是目的,而多 线程是实现这个目的的方法.异步是说,A发起一个操作后(一般都是比较耗时的操作,如果不耗时的操作 就没有必要异步了),可以继续自顾 ...

  8. java 高并发第三阶段实战_JAVA多线程编程实战视频-第三阶段(共80节)

    高并发编程第三阶段01讲 AtomicInteger多线程下测试讲解 高并发编程第三阶段02讲 AtomicInteger API详解,以及CAS算法详细介绍 高并发编程第三阶段03讲 利用CAS构造 ...

  9. java多线程编程_Java多线程编程实战指南+设计模式篇.pdf

    Java多线程编程实战指南+设计模式篇.pdf 对Java架构技术感兴趣的工程师朋友们可以关注我,转发此文后私信我"Java"获取更多Java编程PDF资料(附送视频精讲) 关注我 ...

  10. c++并发编程实战_Java 并发编程实战:JAVA中断线程几种基本方法

    一个多线程Java程序,只有当其全部线程执行结束时(更具体地说,是所有非守护线程结束或者某个线程调用system.exit()方法的时候) ,才会结束运行.有时,为了终止程序或者取消一个线程对象所执行 ...

最新文章

  1. Openstack组件实现原理 — Nova 体系结构
  2. 滑动验证前端代码实现
  3. R中大数据量数据框的合并慎重使用rbind
  4. HTML5 结构语义元素的标题h1~h6元素
  5. 统计标点符号的次数 java_Java实现统计一篇文章中每个单词出现的次数
  6. linux shell中的流编辑器sed的使用
  7. java 数字任意三个数_求Java编程个猜数字游戏!任意输入个数根据提示大了或小了直到选对...
  8. 企业园区全面安防面临的问题及解决之道
  9. 酒店和餐饮企业Foodprint Group使用西门子低代码重设工作流程以缓解食物浪费问题
  10. CAD 开发 渐变填充
  11. 58集团监控业务实践:将网站运行信息透明化
  12. 《焦虑心理学》——综述篇
  13. uuctf-Unicorn shop----easy_web----CheckIN
  14. Autodesk ReCap-现实捕获技术
  15. 移动支付探索海外,将普及全球
  16. 毕业5年,腾讯65万,拿到美团、滴滴、快手、阿里offer多少钱
  17. Matlab的plot~各种颜色和线形
  18. springboot 问题记录
  19. 查看mysql表结构
  20. wireshark分析http协议详解

热门文章

  1. 小米笔记本桌面计算机图标,小米笔记本桌面锁定怎么解除
  2. 《一本书读懂中国税》- 笔记
  3. mysql查找jdbc驱动包_查找已安装的JDBC驱动程序
  4. PuTTYgen使用教程
  5. 总结 | 六大路径规划算法
  6. l440加装固态硬盘ngff_[转载]Thinkpad E431装NGFF固态硬盘图文详解
  7. 系统辨识matlab程序,系统辨识部分算法matlab程序
  8. 【随机信号分析】实验(十三)窄带信号分析——随机信号的DSB分析
  9. TechTool Pro 11 Mac(硬件检测和系统维护工具)附序列号中文版
  10. 宋宝华:公元1024年Linux内核的尘封往事