WEB开发网
开发学院软件开发Java Active Object 并发模式在 Java 中的应用 阅读

Active Object 并发模式在 Java 中的应用

 2010-08-06 00:00:00 来源:WEB开发网   
核心提示: 实现 Future,如清单 6 所示: 清单 6. Message_FutureclassMessage_Future{public://Initializes<Message_Future>to//pointto<message>immediately.Message_

实现 Future,如清单 6 所示:

清单 6. Message_Future

class Message_Future { 
public: 
  // Initializes <Message_Future> to 
  // point to <message> immediately. 
  Message_Future (const Message &message); 
 
  //Other implementatio…… 
 
  // Block upto <timeout> time waiting to obtain result 
  // of an asynchronous method invocation. Throws 
  // <System_Ex> exception if <timeout> expires. 
  Message result (Time_Value *timeout = 0) const; 
private: 
  //members definition here…… 
}; 

事实上,对于调用者来说,可以通过以下的方式从 Future 对象获得真实的执行结果 Message:

同步等待。调用者调用 Future 对象的 result() 方法同步等待,直到后端的 Servant 相应方法执行结束,并把结果存储到了 Future 对象中来,result 返回,调用者获得 Message。

同步超时等待。调用者调用 Future 对象的 result(timeout) 方法。如果过了 timeout 时间之后,后端的 Servant 相应方法执行仍未结束,则调用失败,否则,调用者线程被唤醒,result 方法返回,调用者获得 Message。

异步查询。调用者可以通过调用 Future 对象定义的查询方法 ( 清单 6 没有提供相应的定义 ),查看真实的结果是否准备好了,如果准备好了,调用 result 方法,直接获得 Message。

清单 7 是使用该 Active Object 的示例。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Active Object 并发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接