信号量和互斥量的区别
在这篇文章中,我们将了解信号量和互斥量之间的区别-
信号
它用于信令机制。
它是一个整数变量。
“等待”和“信号”操作可用于修改信号量。
如果没有可用资源,则该过程要求需要执行的资源必须“等待”。
该进程将不得不“等待”,直到信号量的计数高于0。
一个信号量可以使用多个程序线程。
任何释放或获取资源的进程都可以更改信号量的值。
有不同种类的信号量:计数信号量和二进制信号量。
可以使用“等待”操作和“信号”操作更改信号量的值。
如果所有资源都被使用,则进程被占用。
请求资源的进程使用“等待”操作并阻塞自己,直到信号量的计数大于1。
互斥体
它用于锁定机构。
它是一个对象。
它由请求或释放资源的进程(仅)修改。
如果互斥锁被锁定,那么进程将不得不等待。
当互斥锁被锁定时,该进程保持在队列中。
只有在互斥锁被解锁后才能访问它。
可以在互斥锁中使用多个程序线程(但不能同时使用)。
对象上的锁只能由获得对象锁的进程释放。
它没有任何子类型。
对象已锁定或未锁定。
如果对象已经被锁定,请求资源的进程将等待。
在锁被释放之前,它会被系统排队。