线程是否需要获得互斥对象的所有权才能关闭互斥对象的句柄
Does thread need to get the ownership of the mutex to close the handle of the mutex
我看到了一些关于使用互斥的示例程序。我只是想知道线程是否必须获得互斥锁的所有权才能关闭句柄,因为其中一个示例在main((中创建了一个互斥锁。
ghmu_handle = CreateMutex(NULL, false, NULL);
然后是
- 创建了一个线程
- 线程获得了互斥对象的所有权
- 它在关键部分做了一些工作
- 使用ReleaseMutex((释放互斥对象
- 现在,main((简单地调用了CloseHandle(ghmu_handle(,而没有获得所有权
这是正确的方式吗?还是我们需要获得所有权才能关闭手柄?
不,您不需要拥有互斥锁来关闭句柄。这将是一个不合理的要求,因为可能不可能声称互斥体的所有权,例如,如果另一个进程持有它
还要注意,没有句柄就不能释放互斥对象。
相关文章:
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 如何获取边缘窗口句柄 (HWND)?
- 枚举进程模块在有效句柄上返回无效句柄
- 在 c/c++ 中打开 PhysicalDrive 的句柄并写入 MBR 的 linux 等效是什么?
- 从运行服务的应用程序代码中提取窗口句柄
- 在读取文件后重置句柄
- 是否有像地图这样的C++结构,但我得到的不是值的键,而是值的句柄?
- Microsoft ODBC 无法创建有效的句柄
- 返回对象的实例并通过句柄使用它
- c++使用字符串句柄对对象进行通用存储和检索
- 我们可以从设备句柄中获取设备对象详细信息 /名称吗?
- 如何确定两个Win32 API句柄表示相同的对象
- 访问指针句柄中对象的地址
- 如何在运行时获取许多对象之一的句柄
- 从套接字对象获取fd或句柄
- ofstream-需要在close()操作后删除对象句柄
- 在哈希容器中存储持久的v8对象句柄
- 具有自动清除功能的中央注册表中对象的句柄
- 线程是否需要获得互斥对象的所有权才能关闭互斥对象的句柄
- 异构容器和句柄对象