Я знаю, как обычно работают мьютексы в Windows.И да, конечно, я мог бы создать тестовую программу, чтобы узнать результаты, мне просто интересно, знает ли кто-нибудь, прежде чем я это напишу.
Я видел IDXGIKeyedMutex в документации сегодня.У него есть странный метод вызова, когда вы можете вызвать два метода: Acquire (Key) и Release (Key).Acquire ожидает получения «мьютекса» (общего ресурса), связанного с ключом, независимо от того, в каком потоке он находится.Release освобождает общий ресурс независимо от того, в каком потоке он находится.Ожидается, что ни один поток вызовов в Acquire не приведет к тому, что Acquire будет вызван более одного раза, прежде чем будет вызван соответствующий Release (для того же ключа).
Таким способом можно создать производителя / потребителя с блокировкой, например: Производитель: Получить (0), записать общий ресурс, Выпуск (1) Потребитель: Получить (1), прочитать общий ресурс,Релиз (0)
Это заставило меня задуматься: можно ли использовать мьютексы Windows таким образом, хотя это не задокументировано?Что, если я создаю мьютекс для двух процессов и делюсь им обоими, вызываю WaitForSingleObject (m_hMutex, INFINITE) в одном процессе и вызываю ReleaseMutex (m_hMutex) в другом процессе?Я предполагаю, что это не работает?Или так, но никто так не использует?