【发布时间】:2014-08-02 01:08:50
【问题描述】:
我正在从两个进程创建一个命名互斥体,并且我正在检查该命名互斥体是否已经存在。
对 CreateMutex 的两个调用是否都可能返回一个“新”互斥锁(不是进程/线程安全的)?
【问题讨论】:
标签: thread-safety mutex
我正在从两个进程创建一个命名互斥体,并且我正在检查该命名互斥体是否已经存在。
对 CreateMutex 的两个调用是否都可能返回一个“新”互斥锁(不是进程/线程安全的)?
【问题讨论】:
标签: thread-safety mutex
如果这样的互斥体(可以在进程间使用)不是“进程安全”的,那将毫无意义!
CreateMutex 中暗示了这一点:
.. 如果互斥锁是一个命名的互斥锁,并且该对象在此函数调用之前已经存在,则返回值是现有对象的句柄。
两个或多个进程可以调用 CreateMutex 来创建同名互斥锁。第一个进程实际上创建了互斥锁,后续进程 [..] 只需打开现有互斥锁的句柄。这使得多个进程能够获得同一个互斥体的句柄..
多个进程可以拥有同一个互斥对象的句柄,从而可以使用该对象进行进程间同步..
【讨论】: