gpt4 book ai didi

c - 关于同步对象的一些问题[Linux os]

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:31:48 26 4
gpt4 key购买 nike

我对以下陈述感到很困惑..

  1. “Mutex 比信号量轻量级且速度更快”
  2. “信号量比条件变量使用更多的内存”

我在某处读到信号量是基于系统调用的……它更多地处理调度程序,所以它比互斥体慢。但我不明白。请帮我理清这些概念。

谢谢

最佳答案

互斥量和信号量是两个不同的东西。由于互斥锁的简单性,它可​​能会更快,但同时它有不同的用途,所以比较这两者就像比较刀和浅滩。条件变量也是如此,它们只是不同而已。您可以将信号量视为具有条件和计数器的互斥量。使用这三个对象,您可以实现信号量的行为。然而,POSIX 中的信号量也可用于跨进程同步访问共享资源,而互斥量和条件仅是进程内对象。

至于轻量级和速度声明,我想这取决于实现。 Linux 中的信号量更加复杂,因为它们支持进程间同步,互斥量和条件使用具有原子操作的 futex 子系统。但同样,比较这些东西几乎没有意义,因为它们服务于不同的目的。

我建议您阅读以下有关此主题的内容:

关于c - 关于同步对象的一些问题[Linux os],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4777994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com