gpt4 book ai didi

c++ - C++ 17 POSIX信号量或condition_variable?

转载 作者:行者123 更新时间:2023-12-02 10:34:37 25 4
gpt4 key购买 nike

我正在从事一个包含事件处理的项目。我可以访问g++-9,C++ 17(也可能是C++ 20)环境。

我需要信号灯的行为。我的事件处理程序将事件推送到队列中,由另一个线程(事件处理器)处理。 事件处理程序需要非常轻巧,以免错过快速发生的事件。因此,我计划只在事件处理程序中加入并增加信号量,然后在事件处理器中进行加载工作,从而减少信号量。 (避免在始终运行的事件处理器中等待)。

使用POSIX信号量非常容易,但是我也读到,信号量可以在C++中使用condition_variables,counter,unique_locks,mutex实现。我想知道,仅编写C++样式来实现简单的POSIX信号量行为是否值得麻烦?更重要的是,哪一个更快?哪个对我来说是更好的选择?

提前致谢。

最佳答案

只需获取一个现成的C++“线程安全队列”对象,然后让它为您完成工作即可。这类事情的正确实现已经完成(直到……)。

阅读这样的讨论:https://juanchopanzacpp.wordpress.com/2013/02/26/concurrent-queue-c11/

关于c++ - C++ 17 POSIX信号量或condition_variable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60953296/

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