作品简介

现代软件规模大、实时性要求高,所以掌握提升处理和响应速度的多线程技术势在必行。本书涵盖多线程编程的核心库、方法、原理,透彻讲解了高并发的本质与应对方法,帮助读者解决高并发环境下的业务瓶颈。本书具体内容如下。第1章讲解Java多线程的基础知识,包括Thread类的核心API的使用。第2章讲解在多线程中通过synchronized关键字对并发访问进行控制的方法,为读者学习同步知识打好坚实的基础。第3章介绍线程间通信,以在多线程中进行数据传递。第4章介绍并发访问时的同步处理实现,包括读写锁(Lock对象)等相关技术点。第5章剖析定时器Timer类的内部原理。定时器在Android开发中会有深入应用,是很重要的技术点。第6章介绍单例模式下多线程的全面解决方案。第7章对前面遗漏的知识点进行补充,使多线程的知识体系更加完整,尽量做到不出现技术空白点。第8章介绍并发集合框架,可以大大提升开发多线程应用程序的效率。第9章介绍线程池的使用,让线程管理更规范、高效。这也是Java程序员面试必问的技术点。

高洪岩

某世界500强公司项目经理,有10年Java开发和项目管理经验,精通Java语言,擅长Java EE、分布式、微服务、高性能服务器架构、智能报表、多线程和高并发相关的技术内容,理论与实践经验颇丰,也积极参与开源项目的开发与设计,涉及Dubbo、Jedis、Pulsar、ZooKeeper等主流开源项目。

作品目录

  • 前言
  • 第1章 Java多线程技能
  • 1.1 进程和线程的定义及多线程的优点
  • 1.2 使用多线程
  • 1.3 方法currentThread()
  • 1.4 方法isAlive()
  • 1.5 方法sleep(long millis)
  • 1.6 方法sleep(long millis, int nanos)
  • 1.7 方法StackTraceElement[] getStackTrace()
  • 1.8 方法static void dumpStack()
  • 1.9 方法Map<Thread, StackTraceElement[]> getAllStackTraces()
  • 1.10 方法getId()
  • 1.11 停止线程
  • 1.12 暂停线程
  • 1.13 方法yield()
  • 1.14 线程的优先级
  • 1.15 守护线程
  • 1.16 并发与并行
  • 1.17 同步与异步
  • 1.18 多核CPU不一定比单核CPU运行快
  • 1.19 本章小结
  • 第2章 对象及变量的并发访问
  • 2.1 synchronized同步方法
  • 2.2 synchronized同步语句块
  • 2.3 volatile关键字
  • 2.4 本章小结
  • 第3章 线程间通信
  • 3.1 wait/notify机制
  • 3.2 方法join()的使用
  • 3.3 类ThreadLocal的使用
  • 3.4 类InheritableThreadLocal的使用
  • 3.5 本章小结
  • 第4章 锁的使用
  • 4.1 使用ReentrantLock类
  • 4.2 使用ReentrantReadWriteLock类
  • 4.3 本章小结
  • 第5章 定时器
  • 5.1 定时器的使用
  • 5.2 本章小结
  • 第6章 单例模式与多线程
  • 6.1 单例模式与多线程
  • 6.2 本章小结
  • 第7章 拾遗增补
  • 7.1 线程的状态
  • 7.2 线程组
  • 7.3 Thread.activeCount()方法的使用
  • 7.4 Thread.enumerate(Thread tarray[])方法的使用
  • 7.5 再次验证线程执行有序性
  • 7.6 类SimpleDateFormat非线程安全
  • 7.7 线程中出现异常的处理
  • 7.8 线程组内处理异常
  • 7.9 线程异常处理的优先性
  • 7.10 本章小结
  • 第8章 并发集合框架
  • 8.1 集合框架结构
  • 8.2 非阻塞队列
  • 8.3 阻塞队列
  • 8.4 本章小结
  • 第9章 线程池类ThreadPoolExecutor的使用
  • 9.1 Executor接口介绍
  • 9.2 使用Executors工厂类创建线程池
  • 9.3 ThreadPoolExecutor类的使用
  • 9.4 本章小结
展开全部