





作者:尼恩、唐欢、孙精科、朱达华
定价:118元
印次:1-4
ISBN:9787302620983
出版日期:2022.11.01
印刷日期:2024.12.25
图书责编:赵军
图书分类:零售
本书聚焦Java高并发编程基础知识,介绍Java多线程、线程池、内置锁、JMM、CAS、JUC、高并发设计模式等并发编程方面的核心原理和实战知识。 本书共10章。第1、2章剖析多线程、线程池的核心原理和实战应用,揭秘线程安全问题和Java内置锁的核心原理。第3、4章讲解CAS原理与JUC原子类、JMM的核心原理,揭秘CAS操作的弊端和两类规避措施,以及Java内存可见性和volatile关键字的底层知识。第5章讲解JUC显式锁的原理和各种显式锁的使用。第6章阐述JUC高并发的基础设施——AQS抽象同步器的核心原理。第7章介绍JUC容器类。第8~10章介绍常见的Java高并发设计模式的原理和使用。 本书既可以作为Java工程师、架构师的编程参考书,又可以作为参加互联网大厂面试、笔试的人员的学习参考书。
尼 恩中南大学硕士,资深系统架构师、IT领域资深作家、著名博主、从业十余年,先后在华为、神州数码等公司从事技术研发、架构工作。长期专注于高性能Web平台、高性能通信、高性能搜索、数据挖掘等领域的3高架构研究、架构实操、核心代码开发工作,以及核心中间件、底层源码研究工作,负责过多个亿级RMB智慧城市平台、大型政务平台、数据中台架构、技术中台架构工作,发起的3高研究社群“疯狂创客圈”目前有研究人员1100多人。唐 欢计算机专业硕士,资深系统架构师、资深博主,拥有多年Java开发和系统架构经验,多年敏捷开发的项目管理经验,现在国内科技企业担任系统架构师一职,主持企业软件的系统架构和产品研发工作。孙精科南京理工大学计算机专业硕士,上海交通大学EMBA。行业内知名信息化系统专家,具有丰富的大型信息系统的研发及管理经验。近10年来,主持上市公司信息系统建设、三维开发、通信协议转换、数据采集、软硬件一体化产品的研发。具有丰富的国际国内项目咨询经验,担任多项省级项目负责人,主持的多个项目获得省部级奖项;2003—2008年,在东南亚、中东、非洲、南美等地执行国际咨询项目。朱达华资深技术总监、美国协会PMI项目管理师、敏捷教练。近10年来在一线主持技术管理工作,擅长系统架构分析和设计,负责过多个大型省市级系统建设,服务数千万的用户。
前 言 5G时代、物联网时代的大幕已经开启,新时代提升了对Java应用的高性能、高并发的要求,也抬高了Java工程师的技术台阶和面试门槛。 很多公司的面试题从某个侧面反映了生产场景的技术要求。之前只有BAT等大公司才有高并发技术相关的面试题,现在与Java项目相关的整个行业基本都涉及此类面试题。多线程、线程池、内置锁、JMM、CAS、JUC、高并发设计模式等Java并发编程方面的面试题,从以前的加分题变成现在的基础题。本书着重介绍Java并发编程基础知识,揭秘Java高并发编程的核心难题和解决方案。 本书内容 本书是三卷本《Java高并发核心编程》的第2卷,旨在帮助大家掌握Java高并发基础知识:多线程、线程池、内置锁、JMM、CAS、JUC、高并发设计模式、Java异步回调、CompletableFuture类等。 第1章介绍线程的核心原理、线程的基本操作、线程池的核心原理、JUC的线程池架构、4种快捷创建线程池的方法。除此之外,还从生产实际的角度出发,介绍在生产场景中如何合理预估3类线程池(IO密集型、CPU密集性、混合型)的线程数。 第2章基于生产者-消费者模式的实战案例介绍线程安全问题和Java内置锁的核心原理。首先揭秘Java对象的存储布局、对象头的具体结构,并介绍如何用JOL工具查看对象的结构。然后介绍synchronized内置锁的核心原理,以及内置锁从偏向锁到轻量级锁再到重量级锁的升级过程。 第3章介绍CAS原理与JUC原子类,并解密在争用激烈的高并发场景下,如何提升CAS操作的性能。最后揭秘CAS操作的弊端和两类规避措施。 第4章介绍Ja...
第1章 多线程原理与实战 1
1.1 两个技术面试故事 1
1.2 无处不在的进程和线程 2
1.2.1 进程的基本原理 3
1.2.2 线程的基本原理 4
1.2.3 进程与线程的区别 7
1.3 创建线程的4种方法 7
1.3.1 Thread类详解 8
1.3.2 创建一个空线程 10
1.3.3 线程创建方法一:继承Thread类创建线程类 11
1.3.4 线程创建方法二:实现Runnable接口创建线程目标类 12
1.3.5 优雅创建Runnable线程目标类的两种方式 14
1.3.6 实现Runnable接口的方式创建线程目标类的优缺点 16
1.3.7 线程创建方法三:使用Callable和FutureTask创建线程 20
1.3.8 线程创建方法四:通过线程池创建线程 25
1.4 线程的核心原理 28
1.4.1 线程的调度与时间片 28
1.4.2 线程的优先级 29
1.4.3 线程的生命周期 31
1.4.4 一个线程状态的简单演示案例 33
1.4.5 使用Jstack工具查看线程状态 35
1.5 线程的基本操作 36
1.5.1 线程名称的设置和获取 36
1.5.2 线程的sleep操作 38
1.5.3 线程的interrupt操作 39
1.5.4 线程的join操作 42
1.5.5 线程的yield操作 46
1.5.6 线程的daemon操作 48
1.5.7 线程状态总结 52
1.6 线程池原... 查看详情
结合线上项目经验,总结了IO密集型、CPU密集型线程池的线程数预估算法。
图文并茂地介绍了内置锁、JUC显式锁的核心原理和设计模式。
细致深入地揭秘了JMM内存模型。
全面介绍了JUC框架,并给出其核心组件的实战案例。
详尽地介绍了高并发设计模式的使用。
查看详情