【发布时间】:2014-10-15 07:56:32
【问题描述】:
当使用监视器来解决大多数并发问题时,您可以将关键部分放在监视器方法中,然后调用该方法。但是,有一些多路复用问题,其中多达 n 个线程可以同时运行它们的关键部分。所以我们可以说了解如何使用如下监视器很有用:
monitor.enter();
runCriticalSection();
monitor.exit();
我们可以在监视器中使用什么来执行此操作?
附带问题:是否有解决此问题的标准资源?我读到的大部分内容只涉及将关键部分放在监视器内。对于信号量,有“信号量小书”。
【问题讨论】:
-
有一些多路复用问题,其中多达 n 个线程可以同时运行它们的关键部分 - 不清楚。根据定义,临界区是一段代码,一次只能由一个线程执行。
-
@MaximYegorushkin 啊,我明白了。我扩展了“临界区”的使用,以指代最多只能执行 n 次的代码。你对我所说的临界区有什么别的称呼吗?
标签: multithreading concurrency synchronization