gpt4 book ai didi

c++ - 在 C++ 中获取一个只有一次有效的锁

转载 作者:太空狗 更新时间:2023-10-29 23:35:54 28 4
gpt4 key购买 nike

我使用的是 C++ 11,其中有 4 个并行插入并发队列的线程。我知道线程何时完成处理,即队列的预期最终大小。

现在,我想对队列的内容执行最终的聚合操作,该操作应该严格仅执行一次。例如,假设我想聚合值并将其发布到外部服务。

如何获得一个只有一次有效的锁?我不能使用简单的互斥锁,因为这不能保证我只需要一次。

伪代码:

// inside a thread
enqueue items to concurrent_queue

if(concurrent_queue.size() == EXPECTED_SIZE) {
// do something ONLY once
}

最佳答案

一个简单的解决方案。

if(concurrent_queue.size() == EXPECTED_SIZE) {
// do something ONLY once
static bool doItOnce = DoItOnceOnly();
}

关于c++ - 在 C++ 中获取一个只有一次有效的锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26609588/

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