我还没有找到一个很好的例子来说明如何使用 boost::interprocess:: named_semaphore(甚至在 Boost 网站上也没有)。
我可以看到有关 interprocess_semaphore 的一些信息,但它们似乎完全不同,我不知道显示的内容是否也适用于另一个。
谁能给我一些此类示例/教程/文档的链接?
谢谢你。
我还没有找到一个很好的例子来说明如何使用 boost::interprocess:: named_semaphore(甚至在 Boost 网站上也没有)。
我可以看到有关 interprocess_semaphore 的一些信息,但它们似乎完全不同,我不知道显示的内容是否也适用于另一个。
谁能给我一些此类示例/教程/文档的链接?
谢谢你。
interprocess_semaphore
和之间的主要区别在于named_semaphore
使用interprocess_semaphore
共享内存共享,其中 asnamed_semaphore
不需要构造(使用构造)或存储在共享内存中,因为它是通过名称而不是匿名引用的。
命名同步方法使用不同的对象来访问相同的资源,但使用的是相同的资源,其中匿名同步方法需要在 shared_memory 或其他机制中共享相同的对象才能访问相同的资源。
这意味着它named_semaphore
有 3 个构造函数,它们打开或创建引用的同步方法,相比之下interprocess_semaphore
只有 1 个构造函数。
两种信号量类型都按预期实现post
、wait
和。try_wait
timed_wait
此处named_semaphore
提供了一个使用 a 的示例