这种同步方法的名称是什么?

时间:2016-08-08 21:33:34

标签: multithreading concurrency synchronization mutex barrier

我有一个特殊的编程结构,它允许线程等到另一个线程一次释放所有等待的线程。 每个线程都可以注册自己以等待可以由另一个线程(例如,侦听用户输入的线程)触发的外部事件。一旦发生该事件,所有线程都可以继续并立即取消注册。

我的问题是:这样的结构是什么叫做?

起初我想到了互斥体,但据我所知,互斥体是一种只允许一个线程同时运行的构造(参见此链接https://www.quora.com/Semaphore-vs-mutex-vs-monitor-What-are-the-differences)。

对我来说,这个构造听起来像java中的移相器,但是我的构造没有计数逻辑,所以我想知道正确的措辞是什么。

2 个答案:

答案 0 :(得分:0)

相关的Java和C#类中都包含“barrier”一词,因此可能就是您想要的。

答案 1 :(得分:0)

正确的答案是:这主要类似于监视器的条件变量。引用Wikipedia

条件变量本质上是线程的容器,这些线程是 等待某个条件。监视器提供了一种机制 线程暂时放弃独占访问以等待 在重新获得独占访问权限之前必须满足一些条件,并且 恢复他们的任务。

Java的waitnotifyAll是这种实现的一个示例。