《Java并发编程实战》(五)---- 任务执行
摘要:一,在线程中执行任务 a, 串行地执行任务 最简单的策略就是在单个线程中串行地执行各项任务。但串行处理机制通常都无法提供高吞吐率或快速响应性。 b, 显示地为任务创建线程 通过为每个请求创建一个新的线程来提供服务,从而实现更高的响应性。但为每个任务分配一个线程也存在一些缺陷: 1,无限创建线程的不足
阅读全文
posted @
2017-05-20 09:29
coder为
阅读(681)
推荐(0) 编辑
《Java并发编程实践》(四)---- 构建阻塞
摘要:一,同步容器 同步容器类包括Vector和Hashtable。这些类实现线程安全的方式是:将它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器本身的状态。 1,同步容器的问题 同步容器类都是线程安全的,但在某些情况下可能需要额外的客户端加锁来保护复合操作。同步容器将所有对
阅读全文
posted @
2017-05-16 17:33
coder为
阅读(380)
推荐(0) 编辑
《Java并发编程实践》(三)---- 组合对象
摘要:一,设计一个线程安全的类 一个线程安全的类的设计需要包括三个基本要素: 组成对象状态的属性 限制状态属性的不变性 并发访问对象状态的管理策略 同步策略规定了如何将不变性/线程封闭/加锁机制等结合起来以维护线程的安全性,并且规定了哪些变量由哪些锁来保护。 1,收集同步需求 要确保类的线程安全性,就需要
阅读全文
posted @
2017-05-16 10:40
coder为
阅读(857)
推荐(0) 编辑
《Java8实战》(三)---- 重构测试和调试
摘要:一,为改善可读性和灵活性重构代码 1,从匿名类到Lambda表达式的转换 用Lambda表达式替换
阅读全文
posted @
2017-05-09 15:36
coder为
阅读(423)
推荐(0) 编辑
《Java核心技术》---- 多线程
摘要:API: java.lang.Object void notifyAll() 解除那些在该对象上调用wait方法的线程的阻塞状态。该方法只能在同步方法或同步块内部调用。如果当前线程不是对象锁的持有者,该方法抛出一个IllegalMonitorStateException异常。 void nofity
阅读全文
posted @
2017-05-03 18:15
coder为
阅读(570)
推荐(0) 编辑
《Java并发编程实战》(二)---- 对象的共享
摘要:synchronization并不仅仅是原子性和确定“临界区”,还有一个重要的方面就是“内存可见性(memory visibility)”。我们不仅想阻止一个线程去修改被另一个线程使用的变量,也想要确保一个线程修改了某个共享值之后其他线程可以看到这些改动。 一,可见性(Visibility) 为了确
阅读全文
posted @
2017-05-03 09:41
coder为
阅读(869)
推荐(0) 编辑