我还没有找到一个很好的例子来说明如何使用boost::interprocess::named_semaphore (甚至在Boost网站上也没有)。
我可以看到一些关于interprocess_semaphore的东西,但它们似乎是完全不同的,我不知道其中一个显示的内容是否也适用于另一个。
有人能给我一些examples/tutorials/documentation?的链接吗?
谢谢。
发布于 2012-02-19 03:11:43
interprocess_semaphore和named_semaphore的主要区别在于,使用共享内存共享interprocess_semaphore,因为named_semaphore不需要构造(使用构造)或存储在共享内存中,因为它通过名称而不是匿名引用。
命名同步方法使用不同的对象来访问相同的资源,但是使用的是相同的资源,其中匿名同步方法需要在shared_memory中共享同一个对象或其他一些机制来访问相同的资源。
这意味着named_semaphore有3个构造函数,它们可以打开或创建引用的同步方法,而interprocess_semaphore只有一个构造函数。
这两种信号量类型都实现了post、wait、try_wait和timed_wait。
进一步的信息可获得这里和这里。
使用named_semaphore的一个例子是可用的这里。
https://stackoverflow.com/questions/5231215
复制相似问题