
Primitive di sincronizzazione
sync.Mutex, RWMutex, Once, Pool, Map, Cond, operazioni atomiche
1Che cos'è un sync.Mutex in Go?
Che cos'è un sync.Mutex in Go?
Risposta
Un sync.Mutex (mutual exclusion lock) è una primitiva di sincronizzazione che garantisce che una sola goroutine possa accedere a una sezione critica alla volta. Chiamare Lock blocca finché il mutex non è disponibile, e Unlock lo rilascia per le altre goroutine. Usalo per proteggere l'accesso concorrente ai dati condivisi.
2Cosa succede se dimentichiamo di chiamare Unlock dopo Lock su un sync.Mutex?
Cosa succede se dimentichiamo di chiamare Unlock dopo Lock su un sync.Mutex?
Risposta
Dimenticare Unlock crea un potenziale deadlock poiché le altre goroutine attenderanno indefinitamente per acquisire il mutex. La buona pratica è usare defer per garantire che Unlock venga chiamato anche in caso di panic. Abbina sempre Lock e Unlock nello stesso scope per evitare lock leak.
3Qual è la differenza principale tra sync.Mutex e sync.RWMutex?
Qual è la differenza principale tra sync.Mutex e sync.RWMutex?
Risposta
Il sync.RWMutex consente più letture concorrenti tramite RLock ma una sola scrittura esclusiva tramite Lock. Questo migliora le prestazioni negli scenari con molte letture poiché i lettori non si bloccano a vicenda. Usa RWMutex quando le letture sono frequenti e le scritture rare.
Perché usare defer con Unlock su un sync.Mutex?
Quando preferire sync.RWMutex rispetto a sync.Mutex?
+19 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di Go
Strutture dati in Go
Interfacce in Go
Gestione degli errori
Goroutine di base
Channels
Go Modules
Server HTTP
Client HTTP
Codifica JSON
Database/SQL
Pacchetto context
Testing
Pattern di concorrenza
Framework web Go
Progettazione di API REST
gRPC
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Generics
Go Design Patterns
Microservices
Sicurezza e autenticazione
Docker & Containerization
Kubernetes Basics
Go Avanzato
Sviluppo CLI
Padroneggia Go per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis