目录:
定义-信号量是什么意思?
信号量是一个同步对象,它控制多个程序在并行编程环境中对公共资源的访问。 信号量被广泛用于控制对文件和共享内存的访问。 设置,检查和等待与信号量相关的三个基本功能,直到清除后再重新设置。 |
信号量用于解决基准同步问题。
信号量的概念由荷兰计算机科学家Edsger Dijkstra提出。
技术百科解释了信号量
信号量是非负整数值,支持操作信号量-> P()和信号量-> V()。 P是一个原子操作,它等待信号量为正,然后将其递减一,而V是一个原子操作,将信号量增加一,这意味着它唤醒了一个等待中的P。与信号量关联的测试和设置是例程以硬件实现,以协调较低级别的关键部分。
信号量通常使用文件描述符来实现。 信号量的创建不是原子的。 如果两个进程尝试同时创建,初始化和使用信号灯,则会创建竞争条件。 创建信号量并将其初始化为正值,以显示要使用的资源的可用性。 信号量可以通过中断或使用测试集操作来实现。
每个信号灯都有一套许可证。 它限制了访问资源的线程数。 只有一个许可并初始化为一个的信号量用作互斥锁。 之所以这样称呼它们,是因为它们只有两种状态:可用许可或可用零许可。 这将包围该属性,以便锁可以由所有者以外的线程释放,从而有助于死锁的恢复。 信号量用于互斥,其中信号量的初始值为1,在临界区之前和之后分别调用P()和V()。