Sobes.tech
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++;
    }
}