信号量和互斥行为的疑惑

问题描述:

信号量和互斥信号是否同步线程和进程,或者只有线程或只有进程?信号量和互斥行为的疑惑

编辑:我的错误是C,而不是壳。由于我通过shell编程,所以我误会了它。还有一件事:通信和同步是一样的吗?

+1

你在说什么“shell”互斥/信号量机制?一般来说,shell不提供这些功能。 Shell确实提供了可用于实现互斥锁的某些功能的文件锁定。但目前尚不清楚你指的是什么。 – kaylum

+0

我的坏..这是C不是壳 –

+1

可能重复[信号量和互斥量的线程和进程同步](http://*.com/questions/12251701/semaphores-and-mutex-for-thread-and-process-同步) – kaylum

SysV IPC semaphores进程之间的同步。

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

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

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

同步是关于确定一项任务是否可以继续或者必须与其他任务协调一致,并且它涉及通信,例如通过递增和递减在任务之间共享的信号量。