
《java并发编程实战》笔记
iteye_6988
这个作者很懒,什么都没留下…
展开
-
java并发编程实战-第1章-简介
java并发编程实战-第1章-简介 简介就是简介。。。内容在后面2015-09-14 16:07:31 · 86 阅读 · 0 评论 -
java并发编程实战-第15章-原子变量与非阻塞同步机制
java并发编程实战-第15章-原子变量与非阻塞同步机制 在高度竞争的情况下,锁的性能将超过原子变量的性能,但在其更加真实的竞争情况下,原子变量的性能将超过锁的性能 在高度竞争条件下,还得靠锁啊! 但在实际情况中,用原子变量。因为书中图15-1的竞争 主要分析15.4.2 非阻塞的链表 原子域更新器,什么时候用: 如果执行原子更新的同...原创 2015-09-17 09:51:06 · 125 阅读 · 0 评论 -
java并发编程实战-第14章-构建自定义的同步器
java并发编程实战-第14章-构建自定义的同步器 14.构建自定义的同步器 类库中包含很多状态依赖的类 FutureTask 、Semaphore 和 BlockingQueue等 14.1 状态依赖的管理 在并发程序中,基于状态的条件可能会由于其他线程的操作而改变 通过轮询和sleep可以勉强解决状态依赖的问题,但高效的做法是使用条件等待机制 14.1....原创 2015-09-17 09:50:40 · 153 阅读 · 0 评论 -
java并发编程实战-第13章-显示锁
java并发编程实战-第13章-显示锁 Lock interface: 方法摘要 void lock() 获取锁。 void lockInterruptibly() 如果当前线程未被中断,则获取锁。 Condition () 返回绑定到此 Lock 实例的新 Condition 实例。 ...原创 2015-09-16 09:24:05 · 102 阅读 · 0 评论 -
java并发编程实战-第12章-并发程序的测试
java并发编程实战-第12章-并发程序的测试 安全性测试:不发生任何错误的行为 ...原创 2015-09-16 09:23:33 · 103 阅读 · 0 评论 -
java并发编程实战-第11章-性能与可伸缩性
java并发编程实战-第11章-性能与可伸缩性 首先要保证程序的正确运行,仅当程序的性能需求和测试结果要求程序执行更快的时候,才应该设法提高程 序的运行速度 11.1 对性能的思考 要想通过并发提高性能,需要做好2件事: 更有效的利用现有的处理资源,以及在出现新的处理资源时使程序尽可能的利用新资源 如果是计算密集型的,则可以添加cpu来处理 11.1.1 性能与可伸缩...原创 2015-09-16 09:23:05 · 121 阅读 · 0 评论 -
java并发编程实战-第10章-避免活跃性危险
第三部分 活跃性、性能和测试 java并发编程实战-第10章-避免活跃性危险 10.1.1 锁顺序死锁 GUI为什么设计成单线程的原因 10.1.2 动态的锁顺序死锁 转账时,对于参数账户a和b,如果设计成a转移b时先设定先锁定a再锁定b,则b转给a时就会先锁定b 再锁定a,造成锁顺序死锁 此时可以通...原创 2015-09-16 09:22:13 · 114 阅读 · 0 评论 -
java并发编程实战-第9章-图形用户界面应用程序
java并发编程实战-第9章-图形用户界面应用程序 虽然GUI框架本身是单线程子系统,但应用程序可能不是单线程的,因此在编写GUI代码的时候仍然需要谨慎 地考虑线程问题 9.1 为什么GUI是单线程的? 竞态条件和死锁, 1、气泡上升和气泡下沉,导致不一致的锁顺序,引发死锁 2、mvc模式的广泛使用,mvc三者的调用顺序也会造成不一致的锁定顺序,引发...原创 2015-09-16 09:21:32 · 150 阅读 · 0 评论 -
java并发编程实战-第8章-线程池的使用
java并发编程实战-第8章-线程池的使用 重点:配置调优的高级选项,并分析在任务执行框架时需要注意的各种危险 8.1 在任务与执行策略之间的隐性耦合 8.1.1 线程饥饿死锁 条件:任务依赖其他任务,只要线程池中的正在执行的任务的线程需要等待一工作队列中的任务而阻塞。 调整策略:调整线程池的大小 例子:ThreadDeadlock中主任务等待子任务的完成(注意:...原创 2015-09-15 09:54:44 · 131 阅读 · 0 评论 -
java并发编程实战-第7章-取消与关闭
java并发编程实战-第7章-取消与关闭 java中没有一种安全的抢占式方式的,只有协作式 取消标志如果和阻塞方法一起使用,则会失效,如 public void run() { try { BigInteger p = BigInteger.ONE; while (!cancelled) ...原创 2015-09-15 09:54:02 · 121 阅读 · 0 评论 -
java并发编程实战-第6章-任务执行
第二部分 结构化并发应用程序 java并发编程实战-第6章-任务执行 6.1 在线程中执行任务 当围绕”任务执行“来设计应用程序结构时,第一步就是找出清晰的任务边界。理想情况下,任务之间是 相互独立的 吞吐率和相应时间的选择:当用户希望尽快的相应,而负载过多时,应用性能应该逐步减低 6.2 Excutor框架 java 类库中,任务执行的...原创 2015-09-15 09:52:15 · 142 阅读 · 0 评论 -
java并发编程实战-第5章-基础构建模块
java并发编程实战-第5章-基础构建模块 第4章中,介绍的构造线程安全类中的技术中,委托是创建线程安全类的一个最有效策略。 java平台类中包含了丰富的并发基础构建模块,例如线程安全类容器和同步类工具。本章将介绍其中的一些最有用的模块以及使用这些模块构建并发应用程序的一些常用模式 5.1 同步容器类 早期的有vector、Hashtable 、以及Co...原创 2015-09-15 09:50:52 · 163 阅读 · 0 评论 -
java并发编程实战-第4章-对象的组合
java并发编程实战-第4章-对象的组合 (重点:组合模式) 4.3.5 重点:理解发布状态可变的车辆追踪器 p58 理解脚注: 如果将拷贝构造函数实现为this(p.x,p.y),那么会产生竞态 条件,而私有构造函数则可以避免这种竞态条件.这是私有构造函数捕获模式的一个实例 测试类 public class SafePointMain { publ...原创 2015-09-15 09:49:54 · 110 阅读 · 0 评论 -
java并发编程实战-第3章-对象的共享
java并发编程实战-第3章-对象的共享 如何共享和发布对象,使其能符合第2章所讨论的多个线程下的安全性访问。2-3章是第4章构建线程安全类 和通过java.util.concurrent类库来构建并发应用程序的重要基础 同步除了实现原子性操作外,另一个重要方面内存可见性 3.1可见性 In order to ensure visibility of ...2015-09-14 16:10:03 · 139 阅读 · 0 评论 -
java并发编程实战-第2章-线程安全性
java并发编程实战-第2章-线程安全性 2. 线程安全性 2.1 什么是线程安全性 线程安全类:当一个类被多个线程访问时,不管运行环境中如何调度,这些线程如何交替执行,并且在调用的代码部分不需要额为的同步或者协同。这个类为线程安全类 Thread-safe classes encapsulate any needed synchronization so tha...2015-09-14 16:08:55 · 120 阅读 · 0 评论 -
java并发编程实战-第16章-java内存模型(JMM)
java并发编程实战-第16章-java内存模型(JMM) 16 java内存模型(JMM) 对理解高并发很有用 参考: 《深入理解的java虚拟机》第5部分 高效并发 jsr133中文版 : http://ifeve.com/jsr133-cn/ 理解以下概念: 主内存和工作内存:对比计算机系统的内存和cpu的高速缓存 内存之间的相互工作:loc...原创 2015-09-17 09:51:48 · 113 阅读 · 0 评论