У меня проблема с синхронизацией 2 процессов. У меня есть 3 процесса X и 5 Y процессов. Также у меня есть 2 ресурса - A и B.Взаимное исключение и синхронизация процессов; C++
Ресурс 'A' может быть использован максимум 3 экземплярами одновременно и путем обращения к ресурсу 'B' необходимо взаимное исключение.
процесс X и Y:
void processX()
{
while (1)
{
AccessToResource(B);
AccessToResource(A);
}
}
void processY()
{
while (1)
{
AccessToResource(A);
AccessToResource(B);
}
}
Как я могу это сделать с помощью семафоров, мьютексы, события, кратчайший путь?
Теперь у меня есть
CSemaphore sem(1,5,L"semaph");
и используя его sem.Lock() и sem.Unlock() до и после получения доступа к ресурсу, но это не совсем хорошо.
Таким образом, вам не нужно одновременно блокировать доступ к A и B? Доступ к каждому ресурсу можно обрабатывать отдельно от другого? –
Процессы X и Y работают одновременно. Я не знаю, как с этим справиться, это моя первая задача с чем-то подобным – Pawel
@Pawel the C++ standard не имеет понятия о процессе, а стандартная библиотека не имеет API-интерфейсов между процессами. Вам нужно указать API, который вы собираетесь использовать в вопросе. – user2079303