Junior — Middle
Podes enumerar os principais mecanismos de sincronização de threads e processos?
sobes.tech IA
Resposta da IA
Os principais mecanismos de sincronização de threads e processos em C# incluem:
- lock — fornece acesso exclusivo a um recurso, bloqueando uma secção do código para outros threads.
- Mutex — mecanismo de bloqueio entre processos, permitindo sincronizar o acesso entre diferentes processos.
- Semaphore e SemaphoreSlim — limitam o número de threads que podem aceder simultaneamente a um recurso.
- Monitor — mecanismo de bloqueio mais flexível com capacidade de esperar e notificar threads.
- AutoResetEvent e ManualResetEvent — permitem que threads esperem por um sinal para continuar.
- Interlocked — fornece operações atômicas sobre variáveis para evitar condições de corrida.
Exemplo de uso de lock:
private readonly object _locker = new object();
void IncrementCounter()
{
lock (_locker)
{
// secção crítica
counter++;
}
}