什么是POSIX相当于Win32的Mutex?

时间:2011-01-23 10:28:07

标签: c pthreads

POSIX的mutex相当于Win32的CRITICAL_SECTION - 其范围仅限于一个进程。 Win32的互斥体(实际上称为NT域中的“突变体”)用作跨进程锁定机制。什么是pthreads等效的跨进程锁?

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

您应该使用IPC进行跨进程操作:管道,信号量,消息队列或共享内存。 我认为在你的情况下命名信号量会很好。有关更多信息:

man 7 sem_overview