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::mutexstd::recursive_mutexstd::timed_mutexstd::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.