仅多线程 - 消费模式

时间:2015-08-22 00:21:54

标签: multithreading concurrency thread-safety multiprocessing consumer

我正在尝试优化以下代码段:

lock()
if (!consumed) {
  consume()
  consumed = true
}
unlock()

显然,只有第一个来执行consume()功能。任何后来的任何一个都将成为无操作,但在这种情况下,他们将需要锁定 - 解锁这是不必要的。额外的要求是如果设置了消耗标志,那么所有线程都需要等到它被消耗,所以它们不能简单地跳过。

命名此问题以及如何优化它的最佳方法是什么?

0 个答案:

没有答案