作品简介

本书全面、系统地讲解了多线程和线程池技术。

全书共分为10章,第1~3章为基本的多线程技术基础,包含创建线程、线程状态转换、线程间同步等内容。第4~8章为线程池技术,包含自定义线程池、通过Executors工具类创建线程池、线程池的底层阻塞队列结构、重入锁等内容。第9章和第10章为多线程技术的应用部分,包含基于Tomcat的线程池应用、基于ThreadLocal的数据库连接管理、生成唯一的订单号等内容。

全书提供了大量应用实例,每章后面均附有习题。

本书适合作为高等院校计算机、软件工程专业高年级本科生、研究生的教材,同时可供有一定编程经验的软件开发人员、广大科技工作者和研究人员在进行多线程编程时参考使用。

肖海鹏,人力资源和社会保障部高级职称;51CTO金牌讲师;具有10年大型项目经验和10年Java教学经验;曾任职E龙网架构师、TechFaith系统工程师等。在网络上推出了“Java Web应用开发技术”“SSM+SpringBoot实战技术”“多线程与线程池技术详解”等视频教程,广受网友好评。

牟东旭,富景天策(北京)科技集团公司高级项目经理。多年从事互联网一线开发工作,曾在某互联网教育机构担任高级讲师,精通SSM、SpringBoot、SpringCloud等主流Java开源框架以及Hadoop、Kafka、Hive、HBASE Storm、Spark、Kylin等主流大数据技术。目前专注于专业气象服务领域的产品策划、技术架构和产品开发工作。

作品目录

  • 作者简介
  • 内容简介
  • 前言
  • 第1章 多线程基础
  • 1.1 进程与线程
  • 1.2 多线程启动
  • 1.3 线程状态
  • 1.4 sleep()与yield()
  • 1.5 线程优先级
  • 1.6 守护线程
  • 1.7 本章习题
  • 第2章 线程安全与共享资源竞争
  • 2.1 synchronized同步介绍
  • 2.2 synchronized同步方法
  • 2.3 synchronized同步静态方法
  • 2.4 synchronized同步代码块
  • 2.5 项目案例:火车售票
  • 2.6 项目案例:家庭消费
  • 2.7 项目案例:别墅Party
  • 2.8 JDK常见类的线程安全性
  • 2.9 本章习题
  • 第3章 多线程通信
  • 3.1 wait()与notify()
  • 3.2 join线程排队
  • 3.3 线程中断
  • 3.4 CountDownLatch计数器
  • 3.5 CyclicBarrier屏障
  • 3.6 Exchanger
  • 3.7 Semaphore信号灯
  • 3.8 死锁
  • 3.9 本章习题
  • 第4章 线程池入门
  • 4.1 ThreadPoolExecutor
  • 4.2 Executor接口
  • 4.3 ExecutorService接口
  • 4.4 Executors工具箱
  • 4.5 线程工厂与线程组
  • 4.6 线程池异常处理
  • 4.7 本章习题
  • 第5章 线程池与锁
  • 5.1 重入锁ReentrantLock
  • 5.2 重入锁与Condition
  • 5.3 读锁与写锁
  • 5.4 公平锁与非公平锁
  • 5.5 本章习题
  • 第6章 线程池与阻塞队列
  • 6.1 Queue接口
  • 6.2 BlockingQueue接口
  • 6.3 BlockingQueue实现类
  • 6.4 LinkedBlockingQueue与ArrayBlockingQueue
  • 6.5 生产者与消费者模式
  • 6.6 SynchronousQueue
  • 6.7 延迟阻塞队列
  • 6.8 PriorityBlockingQueue
  • 6.9 LinkedTransferQueue
  • 6.10 LinkedBlockingDeque
  • 6.11 本章习题
  • 第7章 线程池与AQS
  • 7.1 acquire与release
  • 7.2 性能目标
  • 7.3 设计与实现
  • 7.4 使用AQS
  • 7.5 AQS性能
  • 7.6 本章习题
  • 第8章 结束线程与线程池任务
  • 8.1 stop()与destroy()
  • 8.2 状态值结束线程
  • 8.3 shutdown()与shutdownNow()
  • 8.4 线程休眠
  • 8.5 线程中断
  • 8.6 Future与FutureTask
  • 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服务器异步环境
  • 9.8 Web服务器NIO
  • 9.9 本章习题
  • 第10章 并发编程应用
  • 10.1 JVM与多线程
  • 10.2 Servlet与多线程
  • 10.3 懒汉与恶汉模式
  • 10.4 数据库Connection与多线程
  • 10.5 高并发网站的PageView统计
  • 10.6 生成唯一的订单号
  • 10.7 浏览器并发请求限制
  • 10.8 NIO与多路复用
  • 10.9 远程异步访问
  • 10.10 防止缓存雪崩的DCL机制
  • 10.11 分布式锁解决商品超卖
  • 参考文献
展开全部