二元信号量、互斥量和临界区之间的区别

时间:2022-12-11 15:11:28

二元信号量

  是最简单的一种锁,适合只能被唯一一个线程独占访问的资源;对于允许多个线程并发访问的资源,多元信号量简称信号量;

互斥量

  和二元信号量很类似,资源仅同时允许一个线程访问,但和信号量不同的是,信号量在整个系统可以被任意线程获取并释放;也就是说哪个线程锁的,要哪个线程解锁。

临界区

  是比互斥量更加严格的同步手段。在术语中,把临界区的获取称为进入临界区,而把锁的释放称为离开临界区。与互斥量和信号量的区别:

  (1)互斥量和信号量字系统的任何进程都是可见的。

  (2)临界区的作用范围仅限于本进程,其他进程无法获取该锁。