c - POSIX 相当于 Win32 的 Mutex 是什么?

标签 c pthreads

POSIX 的 mutex 等同于 Win32 的 CRITICAL_SECTION -- 它的范围仅限于单个进程。 Win32 的互斥量(在 NT 领域实际上称为“突变体”)用作跨进程锁定机制。 pthreads 的跨进程锁等价物是什么?

最佳答案

它是一个带有 pshared 的 pthread_mutex_t属性设置为 PTHREAD_PROCESS_SHARED 。但是,您有责任在共享内存中放置这样一个互斥量,所有进程都可以访问 - 所以它不像 win32 api 那样简单。

也许更接近 win32 的是 posix或 sysv 信号量。传统上,跨进程同步也是使用文件锁完成的,例如羊群或lockf (这绝不像听起来那么慢)

关于c - POSIX 相当于 Win32 的 Mutex 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4773340/

相关文章:

c++ - C/C++中的NaN比较规则

c - 为什么以及何时应该在 C 中使用指针到指针而不是简单指针?

c - 使用互斥锁同步 pthread

c - 使用互斥量的 pthread 同步

linux - 我需要什么来调试 pthreads?

使用 select 函数关闭服务器

c - 在内核模块中执行shell命令

c - 如何计算 malloc 分配的内存块的结束地址?

c++ - 泛化 C++11 线程类以使用 lambda

c - Linux gcc <time.h> 和线程在一起