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

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

 2010-08-06 00:00:00 来源:WEB开发网   
核心提示: 实现 Proxy,如清单 2 所示: 清单 2. MQ_ProxyclassMQ_Proxy{public://Boundthemessagequeuesize.enum{MQ_MAX_SIZE=100};MQ_Proxy(size_tsize=MQ_MAX_SIZE):scheduler_(s

实现 Proxy,如清单 2 所示:

清单 2. MQ_Proxy

class MQ_Proxy { 
public: 
  // Bound the message queue size. 
  enum { MQ_MAX_SIZE = 100 }; 
  MQ_Proxy (size_t size = MQ_MAX_SIZE) 
  :scheduler_ (size), 
  servant_ (size) { 
  } 
 
  // Schedule <put> to execute on the active object. 
  void put (const Message &msg) { 
    Method_Request *mr = new Put(servant_,msg); 
    scheduler_.insert (mr); 
  } 
 
  // Return a <Message_Future> as the "future" result of 
  // an asynchronous <get> method on the active object. 
  Message_Future get () { 
    Message_Future result; 
    Method_Request *mr = new Get (&servant_,result); 
    scheduler_.insert (mr); 
    return result; 
  } 
 
  // empty() and full() predicate implementations ... 
private: 
  // The servant that implements the active object 
  // methods and a scheduler for the message queue. 
  MQ_Servant servant_; 
  MQ_Scheduler scheduler_; 
}; 

同一个进程中的多个调用者线程可以共享同一个 Proxy。

实现 Method Request,如清单 3 所示:

清单 3. Method_Request

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

Tags:Active Object 并发

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