摘要: 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。可以将该对象恢复到原先保存的状态 Java中可以使用序列化机制保存状态 发起人:记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。 备忘录:负责存储发起人对象的内部状态,在需要的时 阅读全文
posted @ 2016-11-07 23:06 HectorHou 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 线程的最主要目的是提高程序的运行性能,但性能的提升会导致复杂性的提升,又会导致安全性和活跃性的风险 一、对性能的思考 提升性能意味着用更少的资源做更多地事情。要想通过并发来获得更好的性能,就要更有效地利用现有处理资源 线程使用的额外的性能开销:线程之间的协调(例如加锁、触发信号以及内存同步等),增加 阅读全文
posted @ 2016-11-07 22:03 HectorHou 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: 在安全性和活跃性之间通常存在着某种制衡 一、死锁 定义:在线程A持有锁L并想获得锁M的同时,线程B持有锁M并尝试获得锁L,线程AB均不会释放自己的锁,那么这两个线程将永远地等待下去 在数据库系统的设中考虑了检测死锁以及从死锁中恢复。JVM没有办法解决死锁,只能在编程和测试时注意不要让死锁发生 1、锁 阅读全文
posted @ 2016-11-07 19:29 HectorHou 阅读(820) 评论(0) 推荐(1) 编辑
摘要: 一、在任务和执行策略之间隐性耦合 Executor框架将任务的提交和它的执行策略解耦开来。虽然Executor框架为制定和修改执行策略提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略。 依赖性任务:依赖其他同步任务的结果,使其不得不顺序执行,影响活跃性 使用线程封闭的任务:在单线程的Ex 阅读全文
posted @ 2016-11-07 11:05 HectorHou 阅读(1853) 评论(0) 推荐(0) 编辑