Sobes.tech
Junior — Middle

¿Puedes enumerar los principales primitivas de sincronización proporcionadas por la biblioteca estándar?

sobes.tech AI

Respuesta de la IA

En la biblioteca estándar de C# (en el espacio de nombres System.Threading) están disponibles los siguientes primitivas de sincronización principales:

  • lock (Monitor) — proporciona acceso exclusivo a un recurso, bloqueando un bloque de código.
  • Mutex — un mutex entre procesos, se usa para sincronización entre procesos.
  • Semaphore y SemaphoreSlim — limitan la cantidad de hilos que acceden simultáneamente a un recurso.
  • AutoResetEvent y ManualResetEvent — eventos para señalización entre hilos.
  • ReaderWriterLockSlim — permite que varios hilos lean un recurso simultáneamente, pero bloquea la escritura.
  • SpinLock — una primitiva ligera para bloqueos cortos sin cambio de contexto.

Ejemplo de uso de lock:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // código que debe ejecutarse solo con un hilo a la vez
    }
}