Active Object 并发模式在 Java 中的应用
2010-08-06 00:00:00 来源:WEB开发网
清单 7. Active Object 使用
MQ_Proxy message_queue;
//Optioin 1. Obtain future and block thread until message arrives.
Message_Future future = message_queue.get();
Message msg = future.result();
//Handle received message here
handle(msg);
//2. Obtain a future (does not block the client).
Message_Future future = message_queue.get ();
//The current thread is not blocked, do something else here...
//Evaluate future and block if result is not available.
Message msg = future.result ();
//Handle received message here
handle(msg);
从清单 7 可以看到,MQ_Proxy 对于调用者而言,和一个普通的 C++ 定义的对象并没有区别,并发的实现细节已经被隐藏。
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 所定义的模式。
- ››Object转换为String[]数组,或者其他类型的数组
- ››Active Directory的复制拓扑,Active Directory系...
- ››Active Directory的主要还原,Active Directory系...
- ››Active Directory的脱机碎片整理,Active Directo...
- ››Objective-c 学习: 初始化
- ››Objective C内存管理进阶: 调试内存泄露
- ››Active Object 并发模式在 Java 中的应用
- ››ActiveFile 手机文件管理
- ››Active Directory网络中DNS服务器的规划
- ››ActiveSkin 4.3软件换肤在VC中的实现
- ››Active Memory Sharing 与双 Virtual I/O Server ...
- ››ActiveX 控件在 Excel 中的运用
更多精彩
赞助商链接