工作线程队列的这种变体是某种模式或通用结构吗?

Is this variant of a worker queue some sort of pattern or common structure?

本文关键字:模式 结构 队列 线程 工作      更新时间:2023-10-16

我想知道以下概念是否被称为编程模式。

想象一个工作线程队列,但不是在

处理时删除每个队列条目,而是在另一个线程捕获 reremove 事件或触发 reremove 事件时删除它。

所以它会是这样的:

  • 命令进入队列
  • 第二个命令进入队列
  • 第三。。。
  • 第一个命令得到处理
  • 第一个命令等待删除
  • 第二个命令得到处理
  • 触发了第一个命令的删除事件
  • 第一个命令被删除
  • 第二个命令等待删除

我希望,我说得足够清楚,可以理解。

现在有没有一个提升库,它已经实现了这种行为?是否有代表这种行为的模式?

据我所知,您只是在谈论两个队列 - "新颖"的队列是待删除的队列。 标准队列(deque)应该没问题。 您需要一个互斥锁和一个条件变量来发出删除事件的信号。 想要为这种模式命名有点灰心丧气(如今人们期望太多了)......如果我在描述它,我可能会说我们有一个解耦的删除线程(假设这就是你实现它的方式),一个异步删除过程(类似),甚至延迟元素删除(即使没有在单独的线程中完成也是如此)。