gpt4 book ai didi

c++ - 具有独立读取器和写入器线程的单个队列是否需要锁定?

转载 作者:行者123 更新时间:2023-11-30 03:51:05 25 4
gpt4 key购买 nike

我有一个共享队列(使用单例队列包装器实现)以及一个读取线程和一个写入线程。我还有一种机制可以在写入线程向队列添加元素(入队)时通知读取线程。读取器线程在收到通知时仅使一个元素出队。在这种情况下是否需要读写锁。

由于写入者只是入队和读取器出队,我觉得如果读取器在出队时检查队列大小,则不需要锁。

最佳答案

Since writer is only enqueing and reader dequeing I feel like there is no need for a lock, if reader checks the queue size when dequeing.

当队列被另一个线程修改时,单独操作已经是不安全的问题之一。在 C++ 中,对非原子共享变量的任何非同步访问(其中至少有一个是写入)都是数据竞争,因此是 UB。

关于c++ - 具有独立读取器和写入器线程的单个队列是否需要锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31489063/

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