我不了解信号量和锁定之间的区别

时间:2015-12-28 14:26:46

标签: multithreading concurrency locking semaphore

我不明白一些事情。 例如二进制信号量和锁是一样的吗? 当使用锁定和信号量时,或两者兼而有之?

1 个答案:

答案 0 :(得分:2)

当有多个进程尝试访问同一资源时,锁和二进制信号量之间的区别很明显。 A"流程"这里定义为可能包含一个或多个线程的程序或应用程序的实例。

两者都只允许一个线程在给定时间访问资源。但是,锁定只能限制单个进程内的访问权限,而二进制信号量可以限制多个进程的访问权限。

因此,在单个进程中,锁和二进制信号量的行为是相同的。两者都只允许一个线程在给定时间访问资源。

多个进程,行为不同。二进制信号量一次只允许一个进程访问给定资源,但锁定将允许多个进程一次访问资源(但每个进程中只有一个线程将在给定时间访问)。 / p>