gpt4 book ai didi

C++ TBB concurrent_bounded_queue - 弹出超时

转载 作者:太空宇宙 更新时间:2023-11-04 13:18:34 26 4
gpt4 key购买 nike

我注意到TBB concurrent_bounded_queue blocking pop没有超时。我们正在从另一个我们有时间等待的实现转移到 TBB,因此在这里寻找相同的功能。

无论如何,定时等待通常很有用,我们将不胜感激任何建议。

谢谢

最佳答案

According to Arch Robinson ,TBB 的架构师,超时从来都不是优先事项:

The initial design of TBB targeted a paradigm of task-based programming for parallel speedup. It is what I think of as "classical" parallel algorithms like parallel_for, parallel_reduce, etc.The containers and mutexes were designed with that in mind; i.e., to avoid race conditions.Blocking was expected to be short, otherwise the program would not scale. Therefore timeouts were not a priority.

有一个 old article其中一位 TBB 工程师讨论了定时互斥体。您可能无法直接使用此处描述的变通方法,但它可以帮助您自己实现阻塞出列,基于 concurrent_queue 不阻塞 try_pop .

我不希望性能接近仅使用 TBB 队列的性能,而且它不会那么微不足道(可能超过 100 LOC),但如果你真的想要它,它是可以做到的。

附言Java BlockingQueue 样式的带超时的阻塞轮询/提议是您可能不想在快速路径上使用的东西。有几次我用这种方法开始实现,只是在一段时间后才发现(没有双关语意),生产者/消费者的压力是不够的,只是阻塞至少是有效的,或者我需要调查发生了什么并重新考虑我的代码的某些部分。

关于C++ TBB concurrent_bounded_queue - 弹出超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36233391/

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