临界区,互斥量与信号量

临界区,互斥量与信号量

​ 1、信号量可以由任何线程(以及中断)释放,它用于同步的时候就像交通灯,线程只有在获得许可的时候才可以运行,强调的是运行步骤

互斥量只能由持有它的线程释放,即只有“锁上”它的那个线程才有“钥匙”打开它。它用于互斥的时候就像一把钥匙,只有获得钥匙的线程才可以运行,强调的是许可和权限

​ 2、使用信号量可能导致线程优先级翻转,而互斥量可通过优先级继承的方法解决优先级翻转问题

​ 临界区用于锁定会被多个线程访问执行的代码在同一时刻只有一个线程执行;

​ 信号量可以用来实现互斥锁,但同一个信号量可以被多个线程释放;

​ 互斥量用来限制不同线程的不同操作同一时刻只能执行一个,并且只有获得了互斥量的线程才能释放互斥量。

原文地址:https://www.cnblogs.com/zhang-han/p/14123104.html