Active Object并发模式在Java中的应用 - 编程入门网
红
实现 Future,如清单 6 所示: 清单 6. Message_Future
事实上,对于调用者来说,可以通过以下的方式从 Future 对象获得真实的执行结果 Message: 同步等待。调用者调用 Future 对象的 result() 方法同步等待,直到后端的 Servant 相应方法执行 结束,并把结果存储到了 Future 对象中来,result 返回,调用者获得 Message。 同步超时等待。调用者调用 Future 对象的 result(timeout) 方法。如果过了 timeout 时间之后, 后端的 Servant 相应方法执行仍未结束,则调用失败,否则,调用者线程被唤醒,result 方法返回,调 用者获得 Message。 异步查询。调用者可以通过调用 Future 对象定义的查询方法 ( 清单 6 没有提供相应的定义 ),查 看真实的结果是否准备好了,如果准备好了,调用 result 方法,直接获得 Message。 清单 7 是使用该 Active Object 的示例。 清单 7. Active Object 使用
从清单 7 可以看到,MQ_Proxy 对于调用者而言,和一个普通的 C++ 定义的对象并没有区别,并发的 实现细节已经被隐藏。 Active Object并发模式在Java中的应用(7)时间:2011-10-22 IBM 李三红Java 对 Active Object 支持 Java JDK 1.3 引入了 java.util.Timer 和 java.util.TimerTask,提供了对 timer-based 并发任务 支持,Timer 和 TimerTask 可以看作是 Active Object 设计模式在 Java 中的实现。不过,在这里我们 不打算过多讨论 Timer 及其 TimerTask。由于 Timer 和 TimerTask 的缺陷性,例如 Timer 使用单线程 执行 TimerTask 导致的 Task 调度时间的不精确性等问题。从 Java1.5 开始,Java 建议使用 ScheduledThreadPoolExecutor 作为 Timer 的替代。 在这里,我们讨论一下自 Java1.5 引入的 Executor Framework。Java1.5 的 Executor Framework 可以看作是 Active Object 设计模式在 Java 中的体现。不过 Java 的 Executor Framework 极大地简 化了我们前面所讨论的 Active Object 所定义的模式。 Java 的 Executor Framework 是一套灵活强大的异步任务执行框架,它提供了标准的方式解耦合任务 的提交与任务的执行。Java Executor 框架中的任务指的是实现了 Runnable 或者 Callable 接口的对象 。Executor 的示例用法如清单 8 所示: 清单 8. Java Executor 示例代码
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |