8

我正在阅读有关互斥锁、信号量和关键部分的信息。我知道互斥锁会同步资源,以便一次只有一个线程访问它,信号量允许特定数量的线程访问资源,但关键部分做什么?

4

1 回答 1

15

在正常使用中,临界区是必须串行执行的一段代码——即在任何给定时间只有一个线程可以执行该代码。您通常通过使用互斥信号量保护代码来实现这一点。

在 Windows 的用语中,临界区是一种数据结构(以及一些相关的函数),它在特定于进程的互斥信号量(即,仅用于在单个进程中的线程之间锁定,而不是在单独的进程之间)实现。

信号量有两种。互斥信号量一次只允许一个线程执行。计数信号量允许您指定可以同时执行的最大线程数。互斥信号量是更常见的品种,但计数信号量肯定也有用途。

于 2012-05-04T21:43:03.577 回答