【发布时间】:2009-12-11 08:17:06
【问题描述】:
我正在使用活动对象设计模式。
我需要一个列表,其中包含相同类型的用户定义对象。多个写入者将对象推送到列表中,读取者可以定时在队列中等待。
我知道我可以包装一个 STL 列表,但也许在 boost 中有现成的解决方案?我就是找不到。
更新:
应用程序在 Linux (RHEL 5.3) 上运行。
【问题讨论】:
标签: c++ multithreading boost active-objects
我正在使用活动对象设计模式。
我需要一个列表,其中包含相同类型的用户定义对象。多个写入者将对象推送到列表中,读取者可以定时在队列中等待。
我知道我可以包装一个 STL 列表,但也许在 boost 中有现成的解决方案?我就是找不到。
更新:
应用程序在 Linux (RHEL 5.3) 上运行。
【问题讨论】:
标签: c++ multithreading boost active-objects
有,它被称为互斥体。 (可锁定用于提升..)
【讨论】:
我在我的博客上写了一篇关于如何使用 boost over 编写线程安全队列的文章:
【讨论】:
没有已经构建的解决方案,但您会找到所需的积木。查看 boost::thread 库或您当前使用的线程库中的文档,以了解如何授予独占访问权限。通常是通过某种mutex。
【讨论】:
如果您使用的是 Windows,那么 microsoft 会提供来自多生产者多消费者无锁列表的代码。
【讨论】:
【讨论】:
如果对象是 POD 类型,您可以将它们写入 Linux 上的 socketpair 并获得您期望的行为。
【讨论】: