Java线程(第三版)
Java线程(第三版)
Scott Oaks, Henry Wong
O'Reilly Taiwan公司 编译
出版时间:2006年03月
线程(thread)是Java程序设计的基本要素,但学习如何有效率地运用它们是很重要的工作。《Java线程》这一经典图书的新版为你展示出如何完全地运用Java的threading功能且展示出在Java 2 Standard Edition Version 5.0(J2SE 5.0)上最新的变动。本书提供了完整的以及步骤详尽的thread程序设计方法。
Java的threading系统与其他的threading系统相较之下显得更为简单。在早期的Java版本中,简化是有利有弊的,如在其他threading系统上可以看到的某些高级功能在Java中是找不到的。J2SE 5.0改变了一切:它提供了非常多的与thread相关的新class,能够让撰写multithreaded程序的工作变得更简单。
《Java线程》第三版已经过完整的扩编与修订。本书完整收录了来自java.util.concurrent的并发功能。新的章节涵盖thread的性能、在Swing中使用thread、thread与Collection class、thread pool以及thread与I/O(传统的、新型的、中断的)。还无法配置J2SE 5.0的开发者可以借由附录中所提供的thread工具于较早的Java版本中达成类似的功能。
本书涵盖了以下主题:
●Lock starvation与死锁检测
●Atomic class与极简同步(J2SE 5.0)
●Swing、I/O以及Collection class与Java thread的交互
●程序化地控制lock与condition variable(J2SE 5.0)
●Thread的性能与安全性
●Thread pool(J2SE 5.0)
●Thread group
●特定平台上的thread调度
●Task scheduler(J2SE 5.0)
●多处理器环境下的并行循环
  1. 前言
  2. 第一章 Thread导论
  3. Java术语
  4. 关于范例
  5. 为何要用Thread?
  6. 总结
  7. 第二章 Thread的创建与管理
  8. 什么是Thread?
  9. 创建Thread
  10. Thread的生命周期
  11. 两种停止Thread的方式
  12. Runnable Interface
  13. Thread与对象
  14. 总结
  15. 第三章 数据同步
  16. Synchronized关键字
  17. Volatile关键字
  18. 更多Race Condition的讨论
  19. 明确的(explicit)Locking
  20. Lock Scope
  21. 选择Locking机制
  22. Nested Lock
  23. 死锁
  24. Lock公平(Fairness)
  25. 总结
  26. 第四章 Thread Notification
  27. 等待与通知
  28. 条件变量
  29. 总结
  30. 第五章 极简同步技巧
  31. 能避免同步吗?
  32. Atomic变量
  33. Thread局部变量
  34. 总结
  35. 第六章 高级同步议题
  36. 同步术语
  37. J2SE 5.0中加入的同步Class
  38. 防止死锁
  39. 死锁检测
  40. Lock饥饿
  41. 总结
  42. 第七章 Thread与Swing
  43. Swing Threading的限制
  44. 事件派发Thread的处理
  45. 使用invokeLater()与invokeAndWait()
  46. 长时间运行的事件回调
  47. 总结
  48. 第八章 Thread与Collection Class
  49. Collection Class的概述
  50. 同步与Collection Class
  51. 生产者/消费者模式
  52. 使用Collection Class
  53. 总结
  54. 第九章 Thread调度
  55. Thread调度的概述
  56. 以Thread优先级来调度
  57. 常见Threading的实现
  58. 总结
  59. 第十章 Thread Pool
  60. 为何要用Thread Pool?
  61. Executor
  62. 使用Thread Pool
  63. Queue与大小
  64. 创建Thread
  65. Callable Task与Future结果
  66. 单一Thread化的访问
  67. 总结
  68. 第十一章 Task的调度
  69. Task调度的概述
  70. java.util.Timer Class
  71. javax.swing.Timer Class
  72. ScheduledThreadPoolExecutor Class
  73. 总结
  74. 第十二章 Thread与I/O
  75. 传统的I/O服务器
  76. 新的I/O服务器
  77. 被中断的I/O
  78. 总结
  79. 第十三章 各种Thread议题
  80. Thread Group
  81. Thread与Java安全性
  82. Daemon Thread
  83. Thread与Class的加载
  84. Thread与异常处理
  85. Thread、Stack、内存的使用
  86. 总结
  87. 第十四章 Thread性能
  88. 性能的概述
  89. 同步的Collection
  90. Atomic变量与有竞争的同步
  91. Thread的创建与Thread Pool
  92. 总结
  93. 第十五章 多处理器计算机的并行化循环
  94. 对单一Threaded程序的并行化
  95. 多处理器扩大(scaling)
  96. 总结
  97. 附录 被撤换的Threading功能
  98. 索引
书名:Java线程(第三版)
作者:Scott Oaks, Henry Wong
译者:O'Reilly Taiwan公司 编译
国内出版社:东南大学出版社
出版时间:2006年03月
书号:7-5641-0239-X
原版书出版商:O'Reilly Media
Scott Oaks
 
Scott Oaks是Sun公司Java性能工程组的高级软件工程师。自1987年就职于Sun公司以来,他曾专攻于多项技术,从SunOS核心技术到网络编程和RPC,再到X Window系统和线程技术等等。从1995年初,他开始将Java作为其研究重点,并致力于把Java技术介绍给终端用户。Scott负责为《The Java Report》撰写关于Java解决方案的专栏文章,此外他还在O'Reilly出版了三本Java类图书:《Java Security》,《Java Threads》以及《Jini in a Nutshell》(后两本书是与Henry Wong合作出版的)。在Internet上,Scott还以其开发的OPEN LOOK 窗口管理器olvwm而具有很高的知名度。
Scott在丹佛大学获得了数学和计算机科学的学士学位,并在Brown大学获得了计算机科学的硕士学位。在加入Sun之前,他曾经是Stearns的Bear研究分部的成员。
业余时间,Scott热爱音乐(他参加了纽约的相关社团,演奏长笛和短笛),热衷于烹调和戏剧,另外还非常喜欢与伴侣James去旅游。




Scott Oaks是Sun公司的Java技术专家,他从1987年开始在这里工作,在这里,他专门从事各种不同的技术,从SunOS内核到网络编程,从RPC到X Window系统到线程化。从1995年上半年开始,他主要专注于Java和为最终用户提拱Java技术;他为《The Java Report》撰写Java解决方案方面的每月专栏。在Internet上,他以olvwm的作者和OPEN LOOK window管理者而闻名。他还是Java Security(O'Reilly出版)一书的作者。
Scott从丹佛大学获得了数学和计算机科学的学士学位,并且从布朗大学获得了计算机科学的硕士学位。在加入Sun公司以前,他一直在Bear公司的Stearns研究分公司工作。
在业余生活中,他喜欢音乐、烹饪、戏剧,以及和他的伴侣James一起旅行。
 
 
Henry Wong
 
Henry Wong是Sun公司的高级系统工程师,他从1989年开始在这里工作。最初,他是一名顾问,帮助客户解决特殊设备驱动程序、内核修改,以及DOS互操作性产品问题,他还致力于Solaris端口、性能调整项目、多线程设计及实现基准和演示等工作。从1995年上半年开始,Henry开始开发Java原型,为使用Java的客户提供支持。
在加入Sun公司以前,Henry于1987年从Cooper联合学院获得了化学工程的科学学士学位。1986年,他加入了一个小的软件公司,从事SCSI设备驱动程序、图像和声音数据压缩,以及用于药物信息系统的图形工具等方面的工作。
当不在计算机前时,Henry是一个私人飞行员,他喜欢箭术、烹饪以及和他的妻子Nini一起旅行。
 
 
O'Reilly特有的封面设计风格,主要来自读者的建议、我们自己的试验以及书店的经验。唯有独树一帜的封面,才能突出我们对于技术议题的阐述风格,避免读者被枯燥的主题压得喘不过气。
《Java线程》第三版一书封面的动物是海洋无脊椎动物(marine invertebrate)。无脊椎动物,或者说没有脊柱的动物,组成了97%以上的地球物种。海洋无脊椎动物在各个海域都非常丰富,包括各种螃蟹、海参、水母、海星、海胆、海葵等,章鱼也属于无脊椎动物。
许多无脊椎动物具有保护性的外壳用来躲开尖牙利齿的掠食者。你可能会认为没有外壳的无脊椎动物会特别脆弱,但它们中已经有许多发展出有效的防卫方式。海葵挥舞触手来螫伤敌人;海胆全身包覆着尖刺;而海蛞蝓则不太可口。
你可能还不知道,海洋无脊椎动物对人类是相当有帮助的。举个例子,它们组成了庞大的食物来源。虾、螃蟹、章鱼、蛤、蚝、乌贼、龙虾、扇贝与螯虾都很美味。无脊椎动物也是天生的吸尘器,能够将死尸与废弃物回收至食物链中。在数百万年过后,由沉积在海床的无脊椎动物尸体所组成的原油的蕴藏是这个世界的能源的主要来源。