线程应用程序的同步列表

时间:2009-12-11 08:17:07

标签: c++ multithreading boost active-objects

我正在使用活动对象设计模式。

我需要一个列表,它包含相同类型的用户定义对象。多个编写器将对象推送到列表中,读者可以按时间等待队列。

我知道我可以包装一个STL列表,但也许有一个现成的解决方案在boost?我找不到它。

UPD:

该应用程序在Linux(RHEL 5.3)上运行。

6 个答案:

答案 0 :(得分:1)

有,它被称为互斥体。 ( Lockable for boost ..)

答案 1 :(得分:1)

我写了一篇关于如何在我的博客上使用boost over编写线程安全队列的文章:

http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html

答案 2 :(得分:0)

没有已经构建的解决方案,但您会找到所需的砖块。查看boost :: thread库或您当前使用的线程库中的文档,以了解如何授予独占访问权限。通常它是通过某种mutex

答案 3 :(得分:0)

如果您使用的是Windows,那么microsoft会提供来自多个生产者多个消费者无锁列表的代码。

查找Interlocked Singly Linked Lists

答案 4 :(得分:0)

这种类型的容器称为有界/阻塞队列

尝试使用this代码项目页面获取c#示例

Joe Duffy在“Windows上的并发编程”一书中很好地解释了整个概念

答案 5 :(得分:0)

如果对象属于POD类型,您可以将它们写入Linux上的socketpair并获得您期望的行为。

相关问题