信号量的思想是用一个整形来累计唤醒次数,值为0表示没有累计下来的唤醒操作,值大于0说明有几个被积累下来唤醒操作。比如s=5,说明该信号量还可以承受连续5次被唤醒的操作,而s=0的话只能只能唤醒别人而自己不能承受被唤醒的操作。
有两种操作,DOWN和UP对应SLEEP和WAKE。SLEEP就是先判断信号量是否大于0,若是的,则用掉一个被唤醒操作(信号量值减一),若值为0,则进程睡眠,等待被唤醒。
信号量的思想是用一个整形来累计唤醒次数,值为0表示没有累计下来的唤醒操作,值大于0说明有几个被积累下来唤醒操作。比如s=5,说明该信号量还可以承受连续5次被唤醒的操作,而s=0的话只能只能唤醒别人而自己不能承受被唤醒的操作。
有两种操作,DOWN和UP对应SLEEP和WAKE。SLEEP就是先判断信号量是否大于0,若是的,则用掉一个被唤醒操作(信号量值减一),若值为0,则进程睡眠,等待被唤醒。