C++ 工作队列的这种变体是某种模式还是公共结构?
我想知道以下概念是否被称为编程模式 设想一个工作队列,但不是在处理时删除每个队列条目,而是在另一个线程捕获删除事件或触发删除事件时删除它 所以它是这样的:C++ 工作队列的这种变体是某种模式还是公共结构?,c++,boost,C++,Boost,我想知道以下概念是否被称为编程模式 设想一个工作队列,但不是在处理时删除每个队列条目,而是在另一个线程捕获删除事件或触发删除事件时删除它 所以它是这样的: 命令进入队列 第二个命令进入队列 第三 处理第一个命令 第一个命令等待删除 处理第二个命令 已触发第一个命令的删除事件 第一个命令被删除 第二个命令等待删除 我希望,我已经说得很清楚了 现在是否有一个boost库实现了这种行为?是否有一种模式代表这种行为 据我所知,您所说的只是两个队列——“新奇”的一个队列是等待删除的队列。标准队列(d
- 命令进入队列
- 第二个命令进入队列
- 第三
- 处理第一个命令
- 第一个命令等待删除
- 处理第二个命令
- 已触发第一个命令的删除事件
- 第一个命令被删除
- 第二个命令等待删除
现在是否有一个boost库实现了这种行为?是否有一种模式代表这种行为 据我所知,您所说的只是两个队列——“新奇”的一个队列是等待删除的队列。标准队列(deque)应该可以。您需要一个互斥锁和一个条件变量来通知删除事件。想要为这样一种模式命名有点梯度(人们现在期望的太多了)。。。如果我在描述它,我可能会说我们有一个解耦的删除线程(假设这就是您实现它的方式)、一个异步删除过程(类似地),甚至是延迟的元素删除(即使不是在单独的线程中完成也是如此)。看起来非常复杂,为什么不立即删除该命令呢?目的是什么?目的是,命令必须得到确认。每个命令将产生相应的响应。但是,我想处理另一个命令,直到响应到达或超时“重新激活”要重新发送的命令。如何防止命令被分配两次?啊,是的,但是关于使用一些指示符字段,比如2d数组,拥有命令和状态——但托尼的想法似乎是一个更好的尝试。我觉得你想要一个单独的队列,而且处理起来有点复杂。事实上,托尼的想法更容易实现,也更快。如果你想使用多线程,它也是更好的选择。感谢这一点——它证实了我的直觉,但自从我使用boost并寻找设计模式以来,我就把事情复杂化了。我会用它来试验,如果没有更好的东西出现,这就是它。