gpt4 book ai didi

c++ - 在单个多线程 C++ 进程中使用 boost::interprocess::interprocess_semaphore 有缺点吗?

转载 作者:行者123 更新时间:2023-11-30 03:09:38 28 4
gpt4 key购买 nike

缺点是与专门用于在同一进程中运行的线程上工作的技术相比。例如,wait/post 是否会导致整个进程产生,而不仅仅是执行线程,即使等待发布的任何人都在同一进程中?

例如,信号量可用于解决同一进程中两个线程之间共享缓冲区中的生产者/消费者问题。

是否有任何合理的替代方案?

最佳答案

使用Boost.Thread condition variables如图here .随附的文章很好地总结了 Boost.Thread 的特性。

使用进程间信号量会起作用,但由于使用了不必要的重量级底层操作系统锁定原语(例如,在 Windows 中命名内核对象),它可能会对您的执行造成负担。

关于c++ - 在单个多线程 C++ 进程中使用 boost::interprocess::interprocess_semaphore 有缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929493/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com