代码之家  ›  专栏  ›  技术社区  ›  Dark Inspiration

信号和互斥行为怀疑

  •  1
  • Dark Inspiration  · 技术社区  · 8 年前

    信号量和互斥锁是同步线程和进程,还是只同步线程,或只同步进程?

    编辑:我错了,是C,不是shell。因为我通过shell编程,所以我错了。还有一件事:通信和同步是一样的吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Petr Skocik    8 年前

    SysV IPC semaphores 在进程之间同步。

    使用POSIX信号量,可以通过pshared参数选择 sem_init(3) 使用pshared=1,可以在访问放置信号量的共享内存区域的所有任务(可能包括线程和进程)之间进行同步。

    Pthread mutexes 在线程上工作。 (Pthreads还有功能上等同于信号量的条件变量)。

    线程版本可以有更好的性能,因为它是可以管理共享计数器的进程,而对于信号量,内核必须这样做。

    同步是指确定一个任务是否可以与其他任务协调进行或必须等待,它涉及通信,例如通过在任务之间共享的递增和递减信号量进行通信。