摘要:
7 取消与关闭 7.1.5通过Future来实现取消 Future.get抛出异常,当你知道不在需要这个结果,可以调用Future.caneel来取消任务。 7.1.6 处理不可中断的阻塞(非标准的取消) 在Java库中,许多可阻塞的方法都是通过提前返回或者抛出InterruptedException来响应中断请求的,然而,并非所有的可阻塞方法或者阻塞机制都能响应中断;如果一个线程由于执行... 阅读全文
posted @ 2018-03-10 11:14
老人与JAVA
阅读(259)
评论(0)
推荐(0)
摘要:
5 基础构建模块 Java平台类库包含了丰富的并发基础构建模块,例如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类(Synchronizer)。本章将介绍其中一些最有用的并发构建模块。 5.1同步容器类 同步容器类包括Vector和Hashtable,二者是早期JDK的一部分,此外还包括在JDK 1.2 中添加的一些功能相似的类,这些同步的封装器类是由Collect... 阅读全文
posted @ 2018-03-10 11:13
老人与JAVA
阅读(539)
评论(0)
推荐(0)
摘要:
6 任务执行 大多数并发应用程序都是围绕"任务执行(Task Execution)"来构造的。理想情况下,各个任务之间是相互独立的:任务并不依赖于其他任务的状态、结果或边界效应。当负荷过载时,应用程序的性能应该是逐渐降低,而不是直接失败。所以应该选择清晰的任务边界以及明确的任务执行策略。 A: 找出清晰的任务边界 大多数服务器应用程序都提供了一种自然的任务边界选择方式:以独立的客户请求为边... 阅读全文
posted @ 2018-03-10 11:11
老人与JAVA
阅读(429)
评论(0)
推荐(0)
摘要:
8 线程池 8.1 如何解决任务和执行策略之间的耦合性问题? 8.1.1任务与策略存在哪几种耦合性? a:依赖性任务 如果提交给线程池的任务需要依赖其他的任务,那么就隐含地给执行策略带来了约束,此时必须小心地维持这些执行策略以避免产生活跃性问题。 b:使用线程封闭机制的任务 任务要求其执行所,在的Executo:是单线程的。如果将Executor从单线程环境改为线程池环境,那么将会失去线程安全性。... 阅读全文
posted @ 2018-03-10 11:04
老人与JAVA
阅读(252)
评论(0)
推荐(0)
摘要:
4 对象的组合 组合模式能够使一个类更容易成为线程安全的,并且在维护这些类时不会无意中破坏类的安全性保证。 4.1设计线程安全的类 设计线程安全类的三个基本要素: A: 找出构成对象状态的祈有变童。 B: 找出钓束状态变量的不变性条件 C: 建立时象状态的并发访问管理策略 例如,LinkedList的状态就包括该链表中所有节点对象的状态。 4.1.1收集同步需求 4.1.2 依赖状态的操作 类... 阅读全文
posted @ 2018-03-10 11:02
老人与JAVA
阅读(513)
评论(0)
推荐(0)

浙公网安备 33010602011771号