信号量和互斥量,哪个更快?

发布于 2024-10-16 21:14:15 字数 62 浏览 1 评论 0原文

如果考虑二进制信号量和互斥量,哪一个更快?我的意思是,需要更少的指令。与信号量相比,互斥量还维护哪些额外数据?

If you consider a binary semaphore and mutex, which one is faster? I mean, takes less instructions. What additional data does mutex maintain compared to semaphore?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╭⌒浅淡时光〆 2024-10-23 21:14:15

这取决于实现,但您可能会发现互斥体的实现速度稍快一些。互斥体通常通过测试和设置来实现,而信号量通常通过测试和增量来实现,或者作为保护增量变量的互斥体来实现。

我建议在大多数情况下使用互斥体,但不是因为速度;只是因为使用互斥锁编写的代码更容易理解,因为语义不太复杂。

This is implementation dependent, but you will probably find that mutex has been implemented to be slightly faster. Mutexes are typically implemented with test and set, while semaphores are often implemented with test and increment or as a mutex guarding a variable that is incremented.

I would suggest using a mutex in most cases, but not due to speed; simply because code written using mutexes is easier to understand as the semantics are less complicated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文