摘要: 任务:通常是一些抽象的且离散的工作单元。大多数并发应用程序都是围绕"任务执行"来构造的,把程序的工作分给多个任务,可以简化程序的组织结构便于维护 一、在线程中执行任务 任务的独立性:任务并不依赖于其他任务的状态,结果和边缘效应。独立的任务可以实现并行执行 1、串行的执行任务 所有的任务放在单个线程中 阅读全文
posted @ 2016-10-30 20:06 HectorHou 阅读(1458) 评论(0) 推荐(0) 编辑
摘要: 状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类 ——将状态封装成独立的类,将动作委托给当前状态对象,所以行为会随着内部状态的变化而变化 状态转换图:为每一个状态创建一个实现一组相同操作接口的对象,实体对象包含所有状态并有一个当前状态接口的引用 特点: 允许一个对象基于不用 阅读全文
posted @ 2016-10-29 23:24 HectorHou 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: 组合模式:允许将对象组合成树形结构来表现“整体/部分”层次结构。组合让客户用一致的方式处理个别对象和组合对象 特点: 树形结构表示对象组合 忽略对象组合和对象个体之间的差别,即相同的操作既可以作用于对象组合,也可以作用与对象个体 注意: 因为继承方法中,有些方法只有对叶子节点有意义,而有些方法只对非 阅读全文
posted @ 2016-10-28 23:32 HectorHou 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部表示 特点: 将客户端与对象集合的存储方式解耦,即客户遍历对象时无需知道对象的具体存储方式 封装变化的部分,即多个不同的集合的不同遍历方式,创建迭代器封装遍历每个对象集合的过程 客户不需要知道具体对象集合是如何存储的,也无需知 阅读全文
posted @ 2016-10-27 23:24 HectorHou 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤 模板就是基类中的一个方法,包含一组步骤,任何一个步骤都可以是抽象的,可以在保证算法结构不变的情况下由子类实现具体某个步骤 模板就是基类中的一个方法,包含一组步 阅读全文
posted @ 2016-10-26 17:07 HectorHou 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 外观模式:提供了一个统一的接口用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用 特点: 将一个或多个类的复杂的一切隐藏在背后,只露出一个干净美好的外观 通过提供一个有着更合理接口的外观类,将复杂的子系统变得容易操作 外观只是提供了一些简化的操作,没有把子系统的高级操作隔离起来,依 阅读全文
posted @ 2016-10-25 23:37 HectorHou 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 适配器模式:将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不相融的类可以相互合作 设计: 实现想要转换的接口 取得要适配的对象的引用,作为局部变量 用要适配的对象的方法实现接口中的方法 客户使用适配器的过程: 通过目标接口调用适配器方法 适配器使用被适配者的接口转换成对被适配者的调用 客 阅读全文
posted @ 2016-10-25 23:15 HectorHou 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 命令模式:将“请求”封装成对象,以便使用不同的请求、日志、队列等来参数化其他对象。命令模式也支持撤销操作。 设计原则: 把方法的调用封装起来,调用此对象不需要知道它内部具体是如何运行的,只需要知道包装成型的方法 命令模式的本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开 将“动作请求者” 阅读全文
posted @ 2016-10-24 23:15 HectorHou 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 委托是创建线程安全类的一个最有效的策略:只需让现有的线程安全类管理所有的状态即可。 一、同步容器类 1、同步容器类的问题 同步容器类都是线程安全的,容器本身内置的复合操作能够保证原子性,但是当在其上进行客户端复合操作则需要额外加锁保护其安全性 由于同步容器类要遵守同步策略,即支持客户端加锁,但必须清 阅读全文
posted @ 2016-10-23 19:55 HectorHou 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 一、设计线程安全的类 找出构造对象状态的所有变量(若变量为引用类型,还包括引用对象中的域) 约束状态变量的不变性条件 建立对象状态的并发访问管理策略(规定了如何维护线程安全性) 1、收集同步需求(找出复合操作、多个变量遵循原子性的操作等) 2、依赖状态的操作(找出操作是否基于先验条件,例:取出当队列 阅读全文
posted @ 2016-10-23 11:59 HectorHou 阅读(2095) 评论(0) 推荐(0) 编辑