gpt4 book ai didi

c - C 中单个线程中的多个队列

转载 作者:行者123 更新时间:2023-11-30 16:40:54 25 4
gpt4 key购买 nike

我最近在一次采访中被问到这个问题。我想知道实现此目的的最佳方法是什么。

假设我有 3 个线程 t1、t2、t3 和两个队列 q1、q2。
t1向q1写入数据
t2向q2写入数据
t3 应在 q1 和 q2 可用时立即读取数据。

我想我可以使用条件变量来读取 q1 和 q2。这可能吗,或者有没有更好的方法。

最佳答案

让 t3 等待信号量。 t1、t2 将数据排队并将一个单元发送到信号量。当 t3 运行时,它会轮询两个队列一次以查找要处理的项目(其中一个队列中将有数据),并处理使该项目出列/处理该项目,然后循环返回以再次等待信号量以获取更多项目。/p>

我假设队列类是线程安全的(否则使用互斥锁进行保护)。

关于c - C 中单个线程中的多个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46465564/

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