博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IBM Java多线程 - 7.结束语和参考资料
阅读量:7021 次
发布时间:2019-06-28

本文共 2269 字,大约阅读时间需要 7 分钟。

结束语和参考资料
结束语 第 1 页(共3 页)

每个 Java 程序都使用线程,不论您知道与否。如果您正在使用 Java UI 工具箱(AWT 或 Swing)、Java Servlet、RMI、JavaServer Pages 或 Enterprise JavaBeans 技术,您可能没有意识到您正在使用线程。

在许多情况中,您可能想要显式地使用线程以提高程序的性能、响应速度或组织。这些情况包括:

  • 在执行耗时较长的任务时,使用户界面的响应速度更快
  • 利用多处理器系统以并行处理多个任务
  • 简化仿真或基于代理的系统的建模
  • 执行异步或后台处理

虽然线程 API 很简单,但编写线程安全的程序并不容易。在线程之间共享变量时,必须非常小心,以确保正确同步了对它们的读写访问。当写一个可能接下来由另一个线程读取的变量,或者读取可能由另一个线程写过的变量时,必须使用同步以确保对数据的更改在线程之间是可见的。

当使用同步保护共享变量时,必须确保不仅使用了同步,而且读取器和写入器在同一个监控器上同步。而且,如果依赖对象的状态在多个操作中保持相同,或者依赖多个变量互相保持一致(或者,与它们过去的值一致),那么必须使用同步来强制实现这一点。但简单地同步一个类中的每一个方法并不能使它变成线程安全的 ― 只会使它更容易发生死锁。

参考资料 第 2 页(共3 页)

下载

  • 请研究 Doug Lea 的 包(http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html),它包含了许多用于构建有效并发应用程序的有用的类。

文章和教程

  • “”(http://gee.cs.oswego.edu/dl/cpj/jmm.html)摘录自 Doug Lea 撰写的着重讨论 synchronized 实际意义的一书。
  • 在“”(developerWorks,2001 年 2 月,http://www-106.ibm.com/developerworks/library/j-thread.html)一文中,Alex Roetter 概述了 Java 多线程化中涉及的问题,并提供了常见问题的解决方案。
  • Brian Goetz 撰写的“”(developerWorks,2001 年 7 月,http://www-106.ibm.com/developerworks/library/j-threads1/)研究了如何管理并发应用程序的性能。
  • Jeff Friesen 撰写的“”(JavaWorld,2002 年 5 月,http://www.javaworld.com/javaworld/jw-05-2002/jw-0503-java101.html)是关于使用线程的一个四部分教程。
  • “”(JavaWorld,2001 年 2 月,http://www.javaworld.com/jw-02-2001/jw-0209-double.html)详细研究了 Java Memory Model,以及在某些情况下同步失败的惊人后果。
  • 线程安全性是棘手的问题。“”(developerWorks,2002 年 6 月,http://www-106.ibm.com/developerworks/library/j-jtp0618.html)提供了一些安全地构造对象的提示。
  • 在“”(http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html)中,Sun 公司的技术人员研究了安全地使用 Swing 的规则,并且引入了有用的 SwingWorker 类。

推荐书籍

  • Doug Lea 的 (Addison-Wesley,1999 年,http://www.amazon.com/exec/obidos/ASIN/0201310090/none0b69)是关于围绕在 Java 应用程序中多线程编程的难解问题的权威书籍。
  • Paul Hyde 的 (http://www.amazon.com/exec/obidos/ASIN/0672315858/none0b69)是关于许多现实世界中多线程问题的好教程和参考大全。
  • Allen Holub 的 (http://www.amazon.com/exec/obidos/ASIN/1893115100/none0b69)一书是 Java 线程编程难题的有趣介绍。

其它参考资料

  • util.concurrent 包正在根据 Java Community Process (http://www.jcp.org/jsr/detail/166.jsp)进行正式化,以便包含在 JDK 的 1.5 发行版中。
  • (http://foxtrot.sourceforge.net/)是另一个在 Swing 应用程序中使用线程的方法,它可能更简单。
  • developerWorks (http://www-900.ibm.com/developerworks/cn/java/)中,您会找到几百篇关于 Java 编程的各个方面的文章。
  • 请访问 (http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/java-onlinecourse-bytitle),以获取 developerWorks 中免费教程的完整清单。

转载地址:http://yebxl.baihongyu.com/

你可能感兴趣的文章
33MW太阳能厂动工 日本福岛开启复兴之路
查看>>
再过22年,你是否还记得雅虎
查看>>
《VMware、Citrix和Microsoft虚拟化技术详解与应用实践》一1.2 云计算概述
查看>>
东芝重组另需1万亿日元:已向交易银行申请贷款
查看>>
台湾半导体封测商南茂股东大会通过紫光24亿元入股案
查看>>
分析称未来一年主流科技公司将裁员33.3万人
查看>>
HPE矛头直指思科 与Arista达成软件定义合作关系及销售协议
查看>>
安防监控芯片市场高清化趋势 成行业共识
查看>>
为什么企业IT部门必须要消除数据孤岛
查看>>
姑娘,咱们一起去学编程吧
查看>>
Ubuntu MATE 15.04 Vivid Vervet Beta 1
查看>>
程序员的年终总结,各种版本各种残
查看>>
《Spring Data官方文档》翻译邀请
查看>>
Jquery绑定事件(bind和live的区别)
查看>>
Python爬虫:用BeautifulSoup进行NBA数据爬取
查看>>
吉利汽车:数字化转型从上云开始
查看>>
bash模板
查看>>
【Spark Summit East 2017】使用Spark, Kafka和Elastic Search的大规模预测
查看>>
机器学习——决策树算法原理及案例
查看>>
关注上帝的所想所爱,创造无限财富
查看>>