【问题标题】:active object pattern modeling for modeled as single object建模为单个对象的活动对象模式建模
【发布时间】:2013-09-11 03:52:11
【问题描述】:

我正在以下位置阅读有关活动对象的文章

http://www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf

本文描述了Active Object模式,它解耦了方法 从方法调用执行以简化同步 访问驻留在其自己的控制线程中的对象。这 主动对象模式允许一个或多个独立的线程 执行交错访问建模为单个数据的数据 目的。广泛的生产者/消费者和读者/作者 应用程序非常适合这种并发模型。

我了解方法执行如何将方法调用解耦。

我的问题是,作者所说的活动对象模式如何允许一个或多个独立的执行线程交错访问建模为单个对象的数据是什么意思?

请求举例说明作者将数据建模为单个对象的含义以及在这种情况下线程如何交错。

感谢您的时间和帮助。

【问题讨论】:

    标签: design-patterns active-objects


    【解决方案1】:

    简而言之:该模式说您可以将状态放在一个对象中,该对象的方法都在同一个线程中执行。通常,这是通过对象内部的同步队列来实现的。它的公共方法不直接完成这项工作,但它们只是将请求放入队列中。然后,有一个线程将队列中的请求一一处理。

    这样,活动对象内部的数据只能由唯一的线程访问,因此您无需担心显式同步(即:您无需使用互斥锁)。

    言归正传:“建模为单个对象的数据”是活动对象中包含的数据。其他对象通过其唯一的线程访问它们:每个方法调用都由内部队列中的请求表示,因此请求会交错!

    在他的论文中,施密特详细解释了活动对象如何通过示例工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多