【发布时间】:2012-05-14 10:31:37
【问题描述】:
我正在阅读有关互斥锁、信号量和临界区的信息。我知道互斥锁会同步资源,以便一次只有一个线程访问它,信号量允许特定数量的线程访问资源,但关键部分做什么??
【问题讨论】:
-
您是在谈论 Windows,还是泛泛而谈?
-
阅读这个 - en.wikipedia.org/wiki/Critical_section,如果仍然没有意义,然后再回来提出一个更具体的问题。
-
在我看来,从阅读那篇维基百科文章来看,信号量和临界区是相同的?
-
不,他们不是。一般来说,信号量是有计数的。确实,初始化为 1 的信号量可用于控制临界区,但仍然存在差异 - Windows 临界区不能用于进程间同步,但在用于线程间同步。 CS 允许递归锁定,初始化为 1 的信号量不允许。
标签: c++ multithreading thread-safety critical-section