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

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

 2010-08-06 00:00:00 来源:WEB开发网   
核心提示: 从图 1 我们可以看到,步骤 1 到步骤 6 运行在调用者线程中,Active Object 并发模式在 Java 中的应用(4),而步骤 7 到步骤 12 运行在 Active Object 的线程中,实现在本节中,或者称为商业逻辑实现,没有混合任何的线程同步机制 , 这有利于我们进行应用逻辑

从图 1 我们可以看到,步骤 1 到步骤 6 运行在调用者线程中,而步骤 7 到步骤 12 运行在 Active Object 的线程中。

实现

在本节中,我们给出 Active Object 的 C++ 示例实现。

调用者调用 Proxy 的 get() 方法,从 Active Object 获得 Message。我们可以假定,在真实的应用中, get() 方法的实现受制于某些慢速的 IO 操作,比如需要通过 TCP Socket 从远端的机器获得 Message, 然后返回给调用者。所以我们使用 Active Object 来实现该应用,通过线程的并发达到提高应用的 QoS。

实现 Servant,如清单 1 所示:

清单 1. MQ_Servant

class MQ_Servant { 
public: 
  // Constructor and destructor. 
  MQ_Servant (size_t mq_size); 
  virtual ~MQ_Servant (); 
 
  // Message queue implementation operations. 
  void put (const Message &msg); 
  Message get (); 
 
   // Predicates. 
  bool empty () const; 
  bool full () const; 
private: 
  // Internal queue representation, e.g., a circular 
  // array or a linked list, that does not use any 
  // internal synchronization mechanism. 
}; 

MQ_Servant 是真正的服务提供者,实现了 Proxy 中定义的方法。put() 和 get() 方法用来操作底层的队列。另外,Servant 的实现是纯粹的应用逻辑实现,或者称为商业逻辑实现,没有混合任何的线程同步机制 , 这有利于我们进行应用逻辑的重用,而不需要考虑不同的线程同步机制。

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

Tags:Active Object 并发

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