⑴ 火车信号灯的不同颜色含义是什么

绿灯:列车进站正线通过,单黄灯:列车进站正线停车,双黄灯:列车进站侧线停车,红灯:列车不允许进站,在该信号机外停车。

出站信号:绿灯:列车出路开通,允许出站。红灯:列车出路未开通,不允许出站。


区间信号:红灯:停车信号,绿灯:正常行驶,黄灯:减速信号,绿灯+黄灯:前方有二个分区空闲。


调车信号:白灯:调车时,允许通过该信号机调车,蓝灯:调车时,不允许通过该信号机调车。

⑵ 信号量的物理意义是当信号量值大于零时表示有什么 ;当信号量值小于零时,其绝对值为多少 。

信号量

Semaphore 类表示一个命名信号量(系统范围)或本地信号量。Windows 信号量是计数信号量,可用于控制对资源池的访问。

管理受限资源
线程通过调用 WaitOne 方法来进入信号量,此方法是从 WaitHandle 类派生的。当调用返回时,信号量的计数将减少。当一个线程请求项而计数为零时,该线程会被阻止。当线程通过调用 Release 方法释放信号量时,将允许被阻止的线程进入。针对让被阻止的线程进入信号量,不存在保证的顺序(例如 FIFO 或 LIFO)。

线程可以通过重复调用 WaitOne 方法来多次进入信号量。若要释放信号量,线程可以调用 Release 方法重载相同的次数,也可以调用 Release 方法重载并指定要释放的项数。

信号量和线程标识
Semaphore 类不对向 WaitOne 和 Release 方法发出的调用强制线程标识。例如,信号量的一个常用方案包括一个生产者线程和一个使用者线程,其中一个线程总是增加信号量计数,而另一个线程总是减少信号量计数。

编程人员应负责确保线程释放信号量的次数不会过多。例如,假定信号量的最大计数为二,线程 A 和线程 B 都进入信号量。如果线程 B 中发生了一个编程错误,导致它调用 Release 两次,则两次调用都会成功。这样,信号量的计数就已经达到了最大值,所以,当线程 A 最终调用 Release 时,将引发 SemaphoreFullException。

命名信号量
Windows 操作系统允许信号量具有名称。命名信号量在整个系统范围都有效。即,创建命名信号量后,所有进程中的所有线程都是可见的。因此,命名信号量可用于同步进程的活动以及线程的活动。

您可以使用可用于指定名称的一个构造函数来创建表示命名系统信号量的 Semaphore 对象。