信号量和共享内存之间有什么区别

时间:2014-11-16 17:03:41

标签: linux shared-memory semaphore

  1. 信号量和共享内存有什么区别?
  2. 我可以在两个不同进程之间使用信号量,还是只能在同一进程的线程中使用?

2 个答案:

答案 0 :(得分:1)

是的,您可以在两个不同的进程之间使用信号量

选择信号量的名称

#define SNAME "/mysem"

在创建它们的过程中使用sem_open和O_CREAT

sem_t *sem = sem_open(SNAME, O_CREAT, 0644, 3); /* Initial value is 3. */

在其他进程中打开信号量

sem_t *sem = sem_open(SEM_NAME, 0); /* Open a preexisting semaphore. */

Reference

答案 1 :(得分:1)

信号量是用于访问共享资源的同步2或更多进程的系统。

共享内存是一个用于在2 o进程之间共享内存的系统,在共享内存上可以写入或从进程读取数据。

例如,使用信号量可以管理对共享内存的访问,以避免从2进程读取非同步。

再见