为了摆脱浪费唤醒信号的问题,Dijkstra提出了一种包含存储所有唤醒调用的方法。 迪克斯特拉(Dijkstra)表示,生产者可以将唤醒调用存储在一个变量中,而不是将唤醒调用直接发送给消费者。 任何消费者只要需要就可以读取。
信号量是存储从生产者转移到消费者的整个唤醒调用变量。 它是在内核模式下自动进行读取,修改和更新的变量。
信号量不能在用户模式下实现,因为在两个或更多进程试图同时访问变量时总会出现竞争条件。 它始终需要操作系统的支持才能实施。
根据情况的需求,信号量可以分为两类。
在接下的教程文章中,我们将详细讨论它们。