O que é um MUTEX?
Um objeto de exclusão mútua, ou MUTEX, é um objeto criado para uso em programas de computador. A função essencial do MUTEX é possibilitar que um encadeamento de vários programas faça uso de um único recurso. Geralmente, a funcionalidade dos objetos de exclusão mútua é permitir esse uso de um único recurso, criando um ambiente em que o acesso ao recurso é continuamente transmitido entre os vários aspectos do programa.
O processo de ativação e criação de um MUTEX ocorre quando o aplicativo do programa de computador é aberto. Essencialmente, o programa criará o MUTEX e o relacionará a um recurso específico necessário para a função eficiente do programa aberto. Conforme os recursos são chamados, o sistema operacional atribuirá um nome exclusivo ao MUTEX e o utilizará para identificar o processo enquanto o programa permanecer aberto.
Depois que o MUTEX é ativado e nomeado para a sessão, qualquer outro thread do programa que requer esse recurso pode ter acesso, mesmo que o recurso já esteja em uso ativo por outro thread. Ao indicar a necessidade do recurso, a função MUTEX começará a alternar o acesso do recurso entre os threads. Para o usuário final, esse processo é transparente. Para todos os propósitos e propósitos práticos, parece que dois usuários ou dois threads estão criando o mesmo recurso simultaneamente.
Embora a velocidade da transferência de acesso seja tão rápida que nem seja perceptível para o usuário final, deve-se observar que, sempre que um recurso está em uso, ele é efetivamente bloqueado para um segmento na sequência. Outro encadeamento que requer o uso do recurso emitirá uma solicitação que entrará em uma fila e permanecerá lá até que o primeiro encadeamento termine com o uso ativo. Nesse ponto, o recurso é desbloqueado e a função MUTEX permite que o próximo encadeamento na fila acesse ativo. Se um terceiro segmento estiver ativo e precisar do recurso, o MUTEX também alinhará esse segmento na fila e concederá acesso em uma base rotativa.