信号量“完整”吗?
是否可以通过明智地使用信号量来解决所有可以想象到的同步问题?弱信号量怎么办?
Can every imaginable synchronization problem be solved with judicious use of semaphores? What about weak semaphores?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,仅举个例子,一个仅使用信号量进行同步的系统不可能在第三方代码(例如插件)面前提供无等待保证,甚至进度保证。不正常或写得不好的代码部分可能会永远拒绝每个人访问信号量保护的代码部分。
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 认为适当扩展的信号量是完整的。这并不能回答我所有的问题,但走在正确的轨道上。大卫·塞勒也有道理。
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.