- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
《Java并发编程学习笔记》.pdf
Java 并发编程学习笔记
Java 并发编程学习笔记
1
高阶圣堂武士
前言
人们一直认为并发编程技术是Java 编程中的高级技术,没有必要掌握。由
于一些技术框架提供了较好的多线程支持(比如Servlet、RMI),很多时候软件
工程师可以不必过多考虑多线程问题。然而,如果你是一个大型数据分析/数据
挖掘软件的架构师的话,你就需要使用并发技术来提供高吞吐量、高可伸缩性和
快速响应能力,因为这些特性是一个设计良好的商业软件必须具备的,而技术框
架提供的线程隔离已经不能满足这方面的需要。
通过使用并发技术可以开发出并行算法,充分利用多处理器系统的计算能
力,提高任务执行速度。此外,很多软件中存在的时隐时现的Bug 都是由于开发
人员不懂并发造成的,这种Bug 通常难以发现和修复,导致软件的维护成本很高。
因此对于Java 高级程序员来说,并发编程已成为一项必备的技能。
目前,在Java 并发编程方面论述系统、内容详实的中文资料很少。本文是
作者在实际工作中经验总结,有一部分内容来自《Java Concurrency In
Practice》。如果英文较好的话,建议还是看 《Java Concurrency In Practice》
毕竟本文作者的水平有限。你需要具备Java 核心编程基础知识才能够看懂本文
中的大部分内容,因而并不鼓励编码量较少的初级Java 程序员阅读。一般来说,
读完前八章即可应付一般的Java 多线程应用程序。
本文仅供编程爱好者学习交流之用,请下载后24 小时内删除。请不要将本
文用于任何商业目的,否则后果自负。
Java 并发编程学习笔记
目录
第一章 概述7
1.1. 并发简史7
1.2. 使用多线程的好处8
1.2.1. 利用多处理器的处理能力9
1.2.2. 建模的简单性9
1.2.3. 简化异步事件的处理 10
1.2.4.更好的用户界面响应能力 10
1.3. 使用多线程的风险 11
1.3.1. 安全风险 11
1.3.2. 活跃性风险 13
1.3.3. 性能风险 13
1.4. 多线程无处不在 14
第二章 线程安全性 16
2.1. 什么是线程安全 17
2.1.1. 一个无状态的Servlet 18
2.2. 原子性 19
2.2.1. 竞争条件20
2.2.2. 延迟初始化20
2.2.3. 复合操作21
2.3. 锁22
2.3.1. 内部锁23
2.3.2. 重入24
2.4. 使用锁确保对象状态一致性25
2.5. 活跃性和性能26
第三章 共享对象30
3.1. 内存可见性30
3.1.1. 陈旧数据31
3.1.2. 非原子性64 位操作32
3.1.3. 锁和可见性33
3.1.4. volatile 域33
3.2. 发表与逃逸34
3.2.1. 安全构造实践36
3.3. 线程封闭37
3.3.1. Ad-hoc 线程封闭38
您可能关注的文档
- 《Introduction+to+Neural+Networks+with+Java》.doc
- 《Inventory Service-Level Agreements as Coordination Mechanisms The Effect of Review Periods》.pdf
- 《invitaiton card demo lesson》.ppt
- 《Ioas项目开发规范(JAVA部分)》.doc
- 《Ionic Bonding - Lesson 1》.ppt
- 《iOS开发中keychain的使用》.docx
- 《Ipad无线智能控制LED显示屏系统.jpg》.pdf
- 《IPG Green laser 2016-12-27》.pdf
- 《ISEB ISTQB - ISEB Certified Tester Foundation Level 2016 Syllibus BH0-010题库》.pdf
- 《Ishi1998NED_three_level_scaling_of_PUMA》.pdf
文档评论(0)