5.0 用户推荐指数
计算机
类型
可以朗读
语音朗读
258千字
字数
2021-04-01
发行日期
展开全部
主编推荐语
本书全面、系统地讲解了多线程和线程池技术。
内容简介
全书共分为10章,第1~3章为基本的多线程技术基础,包含创建线程、线程状态转换、线程间同步等内容。第4~8章为线程池技术,包含自定义线程池、通过Executors工具类创建线程池、线程池的底层阻塞队列结构、重入锁等内容。第9章和第10章为多线程技术的应用部分,包含基于Tomcat的线程池应用、基于ThreadLocal的数据库连接管理、生成唯一的订单号等内容。
全书提供了大量应用实例,每章后面均附有习题。本书适合作为高等院校计算机、软件工程专业高年级本科生、研究生的教材,同时可供有一定编程经验的软件开发人员、广大科技工作者和研究人员在进行多线程编程时参考使用。
目录
- 版权信息
- 作者简介
- 内容简介
- 前言
- 第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 分布式锁解决商品超卖
- 参考文献
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。