P227页在介绍信号量的实现时,有如下描述:
这里使用了 do ... while 而非 while,是为了提供有限等待的保证
使用表8-1来说明了这个例子,但是表8-1只是描述了两个线程在争夺同一个资源,在这种情况下是可以保证有限等待的。
但是如果是多个线程争夺同一个资源,线程1挂起后,等在条件上的多个线程能否拿到资源还是依赖于调度器,这个时候不能保证有限等待。
所以这里的描述是否存在问题呢?谢谢。