1. 案例生动易懂,读者门容易 本书中的大量案例,都贴合实际生活,生动鲜活,容易记忆,容易理解,读者可以轻松上手。 2. 原理透彻,注重应用 本书对多线程相关理论分门别类、层层递地行了详细的叙述和透彻的分析,既体现了各知识之间的联系,又兼顾了其渐近性。本书在介绍每个知识时都给出了该知识的应用场景,同时配合源代码分析;本书真正体现了理论联系实际的理念,使读者能够体会到“学以致用”的乐趣。
售 价:¥
纸质售价:¥59.60购买纸书
6.2
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐

封面页
书名页
版权页
作者简介
内容简介
前言
第1章 多线程基础
1.1 进程与线程
1.1.1 操作系统与进程
1.1.2 线程与进程的关系
1.2 多线程启动
1.2.1 线程标识
1.2.2 Thread与Runnable
1.2.3 run()与start()
1.2.4 Thread源码分析
1.3 线程状态
1.3.1 NEW状态
1.3.2 RUNNABLE状态
1.3.3 BLOCKED状态
1.3.4 WAITING状态
1.3.5 TIMED_WAITING状态
1.3.6 WAITING与BLOCKED的区别
1.3.7 TERMINATED状态
1.3.8 线程状态转换
1.4 sleep()与yield()
1.4.1 线程休眠sleep()
1.4.2 线程让步yield()
1.5 线程优先级
1.5.1 线程优先级与资源竞争
1.5.2 案例:大型浮点运算测试
1.5.3 案例:多线程售票
1.6 守护线程
1.6.1 守护线程的概念
1.6.2 案例:清道夫与工作者
1.7 本章习题
第2章 线程安全与共享资源竞争
2.1 synchronized同步介绍
2.2 synchronized同步方法
2.2.1 同步方法调用流程
2.2.2 同步方法之间的互斥
2.2.3 同步方法与非同步方法
2.3 synchronized同步静态方法
2.3.1 单例高并发问题
2.3.2 类锁与对象锁
2.3.3 静态同步方法之间互斥
2.3.4 静态同步方法与静态非同步方法
2.4 synchronized同步代码块
2.4.1 锁当前对象
2.4.2 锁其他对象
2.4.3 锁Class
2.5 项目案例:火车售票
2.5.1 共享任务模式
2.5.2 多任务模式
2.5.3 共享车票资源
2.6 项目案例:家庭消费
2.7 项目案例:别墅Party
2.7.1 无锁模式
2.7.2 单锁模式
2.7.3 双锁模式
2.8 JDK常见类的线程安全性
2.8.1 集合ArrayList与Vector
2.8.2 StringBuffer与StringBuilder
2.8.3 HashMap与ConcurrentHashMap
2.9 本章习题
第3章 多线程通信
3.1 wait()与notify()
3.1.1 阻塞当前线程
3.1.2 案例分析:厨师与侍者1
3.1.3 案例分析:厨师与侍者2
3.1.4 案例分析:两个线程交替输出信息
3.2 join线程排队
3.2.1 加入者与休眠者
3.2.2 案例:紧急任务处理
3.2.3 join限时阻塞
3.3 线程中断
3.3.1 中断运行态线程
3.3.2 中断阻塞态线程
3.3.3 如何停止线程
3.4 CountDownLatch计数器
3.5 CyclicBarrier屏障
3.5.1 案例:矩阵分行处理
3.5.2 案例:赛马游戏
3.6 Exchanger
3.7 Semaphore信号灯
3.8 死锁
3.8.1 案例:银行转账引发死锁
3.8.2 案例:哲学家就餐死锁
3.9 本章习题
第4章 线程池入门
4.1 ThreadPoolExecutor
4.1.1 创建线程池
4.1.2 关闭线程池
4.2 Executor接口
4.3 ExecutorService接口
4.3.1 Callable返回任务执行结果
4.3.2 shutdown与shutdownNow
4.4 Executors工具箱
4.4.1 newCachedThreadPool
4.4.2 newFixedThreadPool
4.4.3 newSingleThreadExecutor
4.4.4 newScheduledThreadPool
4.4.5 newWorkStealingPool
4.5 线程工厂与线程组
4.5.1 线程组
4.5.2 线程与线程组
4.5.3 线程工厂接口
4.5.4 默认线程工厂实现
4.5.5 线程池与线程工厂
4.6 线程池异常处理
4.6.1 异常捕获
4.6.2 UncaughtExceptionHandler处理异常
4.6.3 Future处理异常
4.7 本章习题
第5章 线程池与锁
5.1 重入锁ReentrantLock
5.1.1 重入锁
5.1.2 互斥锁
5.1.3 ReentrantLock与synchronized
5.1.4 尝试加锁并限时等待
5.2 重入锁与Condition
5.2.1 案例分析:厨师与侍者
5.2.2 案例分析:缓冲区队列
5.3 读锁与写锁
5.3.1 案例:并发读写集合
5.3.2 案例:Map并发控制
5.3.3 数据库事务与锁
5.4 公平锁与非公平锁
5.5 本章习题
第6章 线程池与阻塞队列
6.1 Queue接口
6.2 BlockingQueue接口
6.3 BlockingQueue实现类
6.4 LinkedBlockingQueue与ArrayBlockingQueue
6.4.1 阻塞队列的单锁与双锁
6.4.2 ArrayBlockingQueue并发分析
6.4.3 LinkedBlockingQueue并发分析
6.4.4 案例:12306抢票
6.5 生产者与消费者模式
6.5.1 基于管道发送与接收消息
6.5.2 基于阻塞队列发送与接收消息
6.5.3 案例:医院挂号
6.6 SynchronousQueue
6.6.1 同步队列应用场景
6.6.2 案例:Web服务器处理并发请求
6.7 延迟阻塞队列
6.7.1 案例:元素延迟出队
6.7.2 项目案例:Web服务器会话管理
6.8 PriorityBlockingQueue
案例:按优先级执行任务
6.9 LinkedTransferQueue
6.10 LinkedBlockingDeque
6.11 本章习题
第7章 线程池与AQS
7.1 acquire与release
7.2 性能目标
7.3 设计与实现
7.3.1 同步状态
7.3.2 阻塞
7.3.3 排队
7.3.4 条件队列
7.4 使用AQS
7.4.1 控制公平性
7.4.2 同步器
7.5 AQS性能
7.5.1 过载
7.5.2 吞吐量
7.6 本章习题
第8章 结束线程与线程池任务
8.1 stop()与destroy()
8.2 状态值结束线程
8.3 shutdown()与shutdownNow()
8.4 线程休眠
8.5 线程中断
8.6 Future与FutureTask
8.6.1 取消任务
8.6.2 任务超时结束
8.7 项目案例:所有线程池任务暂停与重启
8.8 本章习题
第9章 Tomcat线程池技术
9.1 自定义ThreadPoolExecutor
9.2 Tomcat任务队列
9.3 Tomcat任务线程
9.4 Tomcat任务线程工厂
9.5 Tomcat连接器与线程池
9.6 创建Tomcat线程池
9.7 Web服务器异步环境
案例:AsyncContext调用业务方法
9.8 Web服务器NIO
案例:服务器NIO处理请求
9.9 本章习题
第10章 并发编程应用
10.1 JVM与多线程
10.2 Servlet与多线程
10.3 懒汉与恶汉模式
10.4 数据库Connection与多线程
10.4.1 ThreadLocal与线程私有数据
10.4.2 ThreadLocal存储数据库Connection
10.4.3 ThreadLocal实现Connection per logic模式
10.4.4 ThreadLocal实现Connection per request模式
10.5 高并发网站的PageView统计
10.6 生成唯一的订单号
10.7 浏览器并发请求限制
10.8 NIO与多路复用
10.9 远程异步访问
10.10 防止缓存雪崩的DCL机制
10.11 分布式锁解决商品超卖
参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜