【发布时间】:2014-05-29 17:57:00
【问题描述】:
我想将 boost asio 用于消息队列。我想对不同的对象做不同的操作。操作具有优先级。因此,如果存在 A 类型的操作,则不应执行 B 类型的操作。据我了解,这就是 boost 文档中的优先示例所做的。但我同样需要的是,如果在一个对象中运行一个操作,我不想在同一个对象中执行另一个操作。这是boost asio可以做到的吗?
【问题讨论】:
标签: c++ multithreading boost boost-asio
我想将 boost asio 用于消息队列。我想对不同的对象做不同的操作。操作具有优先级。因此,如果存在 A 类型的操作,则不应执行 B 类型的操作。据我了解,这就是 boost 文档中的优先示例所做的。但我同样需要的是,如果在一个对象中运行一个操作,我不想在同一个对象中执行另一个操作。这是boost asio可以做到的吗?
【问题讨论】:
标签: c++ multithreading boost boost-asio
后者与优先排队无关,一切与操作序列化有关。
您可以通过使用主动对象模式来实现这一点。这篇文章中有一个使用 Asio 的 Active Object 示例:boost::asio and Active Object
您可以“简单地”将此模式与您在示例中看到的优先排队模式结合起来。
【讨论】: