![]()
作者简介 谢议尊,2016年本科毕业于中山大学软件工程专业,毕业后一直从事服务端研发工作,目前在BAT其中一家任职。擅长Java服务端编程,熟悉Java各核心框架的源码设计,有着丰富的高并发系统设计与开发经验。 目录 部分基础篇 章高并发的理解2 1.2高并发的应对策略7 1.3小结12 第2章操作系统多线程基础13 2.1线程概念14 2.2多线程的挑战20 2.3小结24 第3章Java多线程基础25 3.1线程的使用26 3.2线程的状态与状态转换34 3.3线程安全40 3.4小结63 第二部分基础篇进阶篇 第4章Executor线程池框架66 4.1Executor线程池框架设计概述67 4.2Executor接口与ExecutorService接口68 4.3ThreadPoolExecutor线程池69 4.4Future任务的异步结果83 4.5ScheduledExecutorService任务周期性执行92 4.6Executors线程池创建工具96 4.7ForkJoin任务分解与并行执行框架100 4.8小结111 第5章Java线程安全字典112 5.1Hashtable全同步Map113 5.2SynchronizedMap同步器Map116 5.3ConcurrentHashMap并发Map119 5.4ConcurrentSkipListMap有序并发Map142 5.5小结146 第6章Java并发队列147 6.1BlockingQueue阻塞先入先出队列148 6.2BlockingDeque阻塞先入先出双端队列161 6.3ConcurrentLinkedQueue并发队列165 6.4CopyOnWriteArrayList写时拷贝列表172 6.5小结180 第7章AQS线程同步器181 7.1AQS线程同步器基础182 7.2ReentrantLock可重入锁191 7.3CountDownLatch倒计时同步器203 7.4CyclicBarrier循环栅栏同步器209 7.5Semaphore信号量同步器216 7.6小结222 第三部分基础篇拓展篇 第8章分布式系统设计理论224 8.1系统架构演进225 8.2分布式理论231 8.3高并发234 8.4负载均衡235 8.5缓存机制239 8.6异步处理243 8.7高可用244 8.8可靠性与容错机制248 8.9小结253 第9章Java分布式应用设计核心技术254 9.1分布式服务调用RPC框架255 9.2分布式消息队列270 9.3AMQP协议实现:RabbitMQ270 9.4海量消息处理:Kafka281 9.5Redis消息队列与发布订阅286 9.6分布式缓存292 9.7分布式锁299 9.8小结304 第四部分基础篇实战篇 0章开源框架高并发源码分析306 10.1Dubbo高并发编程实战307 10.2Netty与Tomcat的线程模型326 10.3小结.348 1章秒杀系统设计分析349 11.1秒杀系统设计概述350 11.2限流机制355 11.3缓存的使用358 11.4分布式锁的使用362 11.5队列削峰与异步处理366 11.6小结369 内容推荐 随着移动互联网的发展,几乎所有主流的互联网应用都需要应对高并发场景的挑战。所以不管是Java初学者,还是从业多年的Java开发老兵,了解和掌握Java高并发编程的相关知识都是很好必要的。 《Java高并发编程指南》内容由浅入深,采用理论与实践相结合的方式讲解Java高并发编程的相关知识。首先,介绍对高并发的理解、Java多线程基础、Java并发包相关类的使用与设计原理;然后,拓展讲解分布式系统设计的相关原理、挑战、涉及的相关框架、中间件等;很后,对流行的Java开源框架的源码设计进行分析,结合实现一个简易版的系统来介绍如何基于Java语言实现一个高并发系统,达到原理与实践相结合的目的,帮助读者朋友更好地掌握Java高并发编程的知识。 |