信号量
在计算机科学中,信号量是一种控制对一个或多个资源访问的变量。它是开发者用来确保函数只访问有效数据并在正确时间运行的工具。当资源不可用时,信号量可以禁止访问该资源,从而防止发生死锁或竞态条件。
计算机编程中主要有两种信号量:二进制信号量和计数信号量。
二进制信号量
二进制信号量是一种只能有两种可能值(0 或 1)的布尔变量。它通常用作锁,以限制对某个函数或资源的访问。例如,信号量 A 控制函数 getData()。如果 A = 0,getData() 将不会执行。如果 A = 1,getData() 将运行。二进制信号量也被视为一个标志或开关,它只有打开和关闭两种状态。
计数信号量
计数信号量可以是任意非负的整数,也称为整型数。它的值可能会根据一个或多个函数的结果增加或减少。例如,计数信号量可以跟踪资源池中可用资源的数量。如果信号量减少的次数多于增加的次数,它最终将达到 0。值为 0 表示已没有剩余资源。
NOTE:现实世界中的“信号量”是一面旗帜或其他用于远距离传递信号的物体。例如,某人可能会在码头举起一根杆子,向渡船船长示意自己想要上船。[/n]
测试你的知识