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