typestar

Mutexes en Go

Proteger estado compartido que varias goroutines tocan.

type Counter struct {
    mu     sync.Mutex
    counts map[string]int
}

func (c *Counter) Add(key string) {
    c.mu.Lock()
    defer c.mu.Unlock()
    c.counts[key]++
}

func (c *Counter) Get(key string) int {
    c.mu.Lock()
    defer c.mu.Unlock()
    return c.counts[key]
}

Cómo funciona

  1. sync.Mutex embebido en el struct protege su mapa.
  2. Lock con defer Unlock es el patrón seguro.
  3. Tanto la ruta de lectura como la de escritura toman el candado.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
246
Tokens
86
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 49 segundos.

Escribe este fragmento

Paso 1 de 5 en Sincronización; paso 14 de 25 en Concurrencia.

← Anterior Siguiente →

Mutexes en otros lenguajes