Sobes.tech
Junior — Middle

Consegue listar os tipos existentes de exclusões mútuas (mutex)?

sobes.tech IA

Resposta da IA

Existem diferentes tipos de mutex (exclusão mútua) em C/C++, que diferem na implementação e nas capacidades:

  • Mutex simples (normal) — mecanismo básico de bloqueio que garante acesso exclusivo a um recurso.
  • Mutex recursivo — permite que o mesmo thread adquira o mutex várias vezes sem se bloquear.
  • Mutex com temporizador — mutex que pode ser tentado com um tempo limite.
  • Mutex com verificação de erros — mutex que verifica erros, por exemplo, tentar adquiri-lo várias vezes pelo mesmo thread gera um erro.

Na biblioteca padrão do C++11, estão disponíveis os seguintes tipos:

  • std::mutex
  • std::recursive_mutex
  • std::timed_mutex
  • std::recursive_timed_mutex

Exemplo de uso de std::recursive_mutex:

#include <mutex>

std::recursive_mutex mtx;

void recursive_function(int count) {
    mtx.lock();
    if (count > 0) {
        recursive_function(count - 1);
    }
    mtx.unlock();
}

A escolha do tipo de mutex depende da tarefa e dos requisitos de bloqueio.