设为首页 收藏本站
查看: 1035|回复: 0

[经验分享] IBM Java多线程

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-4 12:09:41 | 显示全部楼层 |阅读模式
结束语和参考资料
1. 结束语
2. 参考资料
3. 反馈意见

结束语第 1 页(共3 页)


  每个 Java 程序都使用线程,不论您知道与否。如果您正在使用 Java UI 工具箱(AWT 或 Swing)、Java Servlet、RMI、JavaServer Pages 或 Enterprise JavaBeans 技术,您可能没有意识到您正在使用线程。
  在许多情况中,您可能想要显式地使用线程以提高程序的性能、响应速度或组织。这些情况包括:

  • 在执行耗时较长的任务时,使用户界面的响应速度更快
  • 利用多处理器系统以并行处理多个任务
  • 简化仿真或基于代理的系统的建模
  • 执行异步或后台处理
  虽然线程 API 很简单,但编写线程安全的程序并不容易。在线程之间共享变量时,必须非常小心,以确保正确同步了对它们的读写访问。当写一个可能接下来由另一个线程读取的变量,或者读取可能由另一个线程写过的变量时,必须使用同步以确保对数据的更改在线程之间是可见的。
  当使用同步保护共享变量时,必须确保不仅使用了同步,而且读取器和写入器在同一个监控器上同步。而且,如果依赖对象的状态在多个操作中保持相同,或者依赖多个变量互相保持一致(或者,与它们过去的值一致),那么必须使用同步来强制实现这一点。但简单地同步一个类中的每一个方法并不能使它变成线程安全的 ― 只会使它更容易发生死锁。

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



  下载

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

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

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

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-122553-1-1.html 上篇帖子: Connector|OIM向IBM TDS推送账号(LDAP3) 下篇帖子: Test King IBM LOT-737 software
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表