Are semaphores "complete"?
Can every imaginable synchronization probl开发者_Python百科em be solved with judicious use of semaphores? What about weak semaphores?
No. Just for example, it's impossible for a system that uses only semaphores for synchronization to provide wait-free guarantees, or even progress guarantees, in the face of third-party code (e.g. a plugin). A perverse or poorly-written section of code can deny access to a semaphore-guarded section of code to everyone forever.
Agerwala argues that appropiately extended semaphores are complete. This doesn't answer all my questions, but is on right track. David Seiler has a point too.
精彩评论