gpt4 book ai didi

c++ - 对于生产者和多个消费者来说,std::queue 线程是安全的

转载 作者:IT老高 更新时间:2023-10-28 22:59:59 26 4
gpt4 key购买 nike

如何使队列线程安全?我需要推/弹出/前/后并清除。 boost中是否有类似的东西?

我有一个生产者和一个或多个消费者。

最佳答案

如果一个或多个线程正在写入,

std::queue 不是线程安全的。而且它的接口(interface)不利于线程安全的实现,因为它有pop()size()empty()等单独的方法> 必须在外部同步。

一种常见的方法*是实现一个具有更简单接口(interface)的队列类型,并在内部使用锁定机制来提供同步。

* 搜索“并发队列 C++”应该会产生很多结果。我实现了一个非常简单的玩具 here ,其中限制是仅使用标准 C++。另请参阅 Anthony Williams 的著作C++ concurrency in action,以及他的博客。

关于c++ - 对于生产者和多个消费者来说,std::queue 线程是安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21302142/

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