- 信号量和共享内存的区别是什么?
- 我能在两个不同的进程之间使用信号量吗?还是只能在同一进程的线程中使用?
是的,您可以在两个不同的进程之间使用信号量
为您的信号量选择一个名称
#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. */
信号量是一种同步多个进程访问共享资源的系统。
共享内存是一种在两个或多个进程之间共享一块内存的系统,可以在进程之间读写数据。
例如,使用信号量可以管理对共享内存的访问,以避免两个进程不同步地读写。
再见