提升了named_semaphore的例子?

时间:2011-03-08 10:28:53

标签: c++ boost semaphore interprocess

我无法找到一个很好的例子来展示如何使用boost :: interprocess :: named_semaphore (甚至不在Boost网站上)。

我可以看到interprocess_semaphore的一些内容,但它们似乎有很大不同,我不知道一个显示的内容是否也适用于另一个。

有人可以给我一些指向示例 / tutorials / documentation的链接吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

interprocess_semaphorenamed_semaphore之间的主要区别在于interprocess_semaphore与共享内存共享,其中named_semaphore不需要构建(使用构造)或存储在共享内存中,因为它是通过名称而不是匿名引用的。

命名同步方法使用不同的对象来访问相同的资源,但使用相同的资源,匿名同步方法需要在shared_memory或其他一些机制中共享相同的对象才能访问相同的资源。

这意味着named_semaphore有3个构造函数可以打开或创建引用的同步方法,而interprocess_semaphore只有1个构造函数。

两种信号量类型都按预期实现postwaittry_waittimed_wait

有更多信息,请herehere

使用named_semaphore的一个示例是here