Semaphore 是一个非负整数,它支持一下两种原子操作:
P():每次执行时,等待 Semaphore 为整数时,将它减少 1 V():将 Semaphore 增加 1注:这里的 P 表示 proberen,是测试的意思;V 表示 verhogen,是增加的意思,二者源自荷兰语
emptyBuffer.P(), fullBuffer.V()
fullBuffer.P(), emptyBuffer.V()
Use locks for mutual exclusion and condition variables for scheduling constraints
if (AR == 0 && WW > 0) {}
去掉,会怎样?okToWrite.signal();
修改成 okToWrite.broadcast();
会怎样?