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

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

信号量 共享内存 - Arnab Nandy
2个回答

3

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

为您的信号量选择一个名称

#define SNAME "/mysem"

在创建它们的进程中使用带有O_CREAT选项的sem_open函数。

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


这是第二部分的答案,只有第一部分在您的评论中给出。请检查。 - Arnab Nandy

3

信号量是一种同步多个进程访问共享资源的系统。

共享内存是一种在两个或多个进程之间共享一块内存的系统,可以在进程之间读写数据。

例如,使用信号量可以管理对共享内存的访问,以避免两个进程不同步地读写。

再见


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接