Java线程 高清晰中文第二版
线程并不是新的概念:许多操作系统和语言都支持它们。在Java出现以前,似乎人人都在谈论线程,却很少有人使用它。用线程编程是技巧性很强的且不可移植。
而在Java中却完全不同。Java的线程工具易于使用,并且像Java中的其他东西一样可以在不同的平台之间移植。这是一件好事,因为如果没有线程,那么除了最简单的applet之外,几乎不可能编写出任何程序。如果你想使用Java,就必须学习线程。
本书的新版本展示了如何利用Java线程工具的全部优势,并介绍了JDK 2线程接口中的最新变化。你将学习如何使用线程来提高效率,如何有效地使用它们,以及如何避免常见的错误。本书讨论了死锁、竞态条件以及饥饿等问题的细节,帮助你编写没有潜在bug的代码。
本书第二版提供了对Thread和ThreadGroup类、Runnable接口和语言的同步操作符内容的全面讨论。它解释了如何在不同的平台上调度线程,如何开发CPUScheduler类来实现你自己的调度策略。其他扩展例子包括实现读/写锁、通用锁、任意作用域的锁和异步I/O的类。本版本还增加了广泛的例子,展示如何实现线程池和其他同步技术,如条件变量、屏障和守护锁。它展示了如何与非线程安全的类共同工作,并特别关注于Swing的线程问题。新增加的一章介绍了如何为多处理器机器编写并行代码。
简而言之,本书的新版涉及了有关线程的方方面面,从最简单的动画applet到最复杂的应用程序。如果你计划用Java做任何重要的事情,你将发现本书很有价值。
前言
第一章 线程简介
Java术语
线程概述
为什么要使用线程?
总结
第二章 Java线程API
通过Thread类创建线程
使用Runable接口的线程
线程的生命周期
线程命名
访问线程
线程的启动、停止和连接
总结
第三章 同步技术
银行的例子
异步读取数据
一个进行同步操作的类
同步块
嵌套锁
死锁
返回到银行的例子
同步静态方法
总结
第四章 等待和通知
返回到银行的例子
等待和通知
wait()、notify()和notifyAll()
wait()和sleep()
线程中断
静态方法(有关同步的细节)
总结
第五章 Java线程编程的例子
数据结构和容器
简单的同步例子
一个网络服务器类
AsyncInputStream类
使用TCPServer和AsynclnputStream
总结
第六章 Java线程调度
线程调度概述
何时调度是重要的
调度和线程优先级
常见的调度实现
本地调度支持
其他线程调度方法
总结
第七章 Java线程调度例子
线程池
循环调度
作业调度
总结
第八章 和同步相关的高级主题
同步术语
预防死锁
锁饥饿
非线程安全的类
总结
第九章 多处理器机器上的并行化
单线程程序并行化
内层循环线程化
循环输出
多处理器扩展
总结
第十章 线程组
线程组概念
创建线程组
线程组方法
操作线程组
线程组、线程和安全
总结
附录一 其他主题
附录二 异常和错误
词汇表