【问题标题】:Semaphores and Mutex behaviour doubts信号量和互斥量的行为疑惑
【发布时间】:2016-10-15 20:29:20
【问题描述】:

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

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

【问题讨论】:

  • 你在说什么“shell”互斥/信号量机制? shell 通常不提供该功能。 Shell 确实提供了文件锁定,可用于实现互斥锁的某些功能。但不清楚你到底指的是什么。
  • 我的错.. 它是 C 而不是 shell
  • 不完全..我之前看到那个线程没有帮助..
  • 它没有帮助,因为?它准确地回答了:“他们是同步线程和进程还是只同步线程,只同步进程”。如果你更准确地说为什么它没有帮助,那么有人可以解决这个差距。

标签: c linux mutex semaphore


【解决方案1】:

SysV IPC semaphores 进程间同步。

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

Pthread mutexes 处理线程。 (Pthreads 也有条件变量,在功能上等同于信号量)。

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

同步是关于确定一个任务是否可以继续或必须等待与其他任务协调,它涉及通信,例如,通过增加和减少任务之间共享的信号量。

【讨论】:

    猜你喜欢
    • 2011-04-20
    • 2017-08-24
    • 1970-01-01
    • 2016-08-30
    • 2015-10-25
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    相关资源
    最近更新 更多