【发布时间】:2011-03-29 14:48:22
【问题描述】:
类似的问题是这个:Are threads waiting on a lock FIFO? 但是,在这个问题中,一旦获得锁,只有一个线程执行受保护的代码,最终所有线程都会执行代码。
我想做的是执行一次受保护的代码,但是对于此时排队等待方法调用的所有线程,返回true。
基本上,受保护的代码是一个全局检查点,它与此时等待的所有线程相关。即,连续执行 N 个检查点不会超过 1 个。
请注意,当检查点完成时,会有其他对该方法的调用,它们本身需要一个新的检查点调用。
我相信我想做的是“批量”同步调用全局函数。
我如何在 C++ 中实现这一点,也许使用 Boost?
【问题讨论】:
标签: c++ multithreading boost synchronization