# Primitive di sincronizzazione (Go) > sync.Mutex, RWMutex, Once, Pool, Map, Cond, operazioni atomiche - 22 domande da colloquio - Mid-Level - [Domande da colloquio: Go](https://sharpskill.dev/it/technologies/go/domande-colloquio.md) ## 1. 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. ## 2. 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. ## 3. 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. ## Altre 19 domande disponibili - Perché usare defer con Unlock su un sync.Mutex? - Quando preferire sync.RWMutex rispetto a sync.Mutex? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Go - [Fondamenti di Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-basics.md): 25 domande, Junior - [Strutture dati in Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-data-structures.md): 20 domande, Junior - [Interfacce in Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-interfaces.md): 18 domande, Junior - [Gestione degli errori](https://sharpskill.dev/it/technologies/go/domande-colloquio/error-handling.md): 20 domande, Junior - [Goroutine di base](https://sharpskill.dev/it/technologies/go/domande-colloquio/goroutines-basics.md): 20 domande, Junior - [Channels](https://sharpskill.dev/it/technologies/go/domande-colloquio/channels.md): 22 domande, Junior - [Go Modules](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-modules.md): 18 domande, Mid-Level - [Server HTTP](https://sharpskill.dev/it/technologies/go/domande-colloquio/http-server.md): 24 domande, Mid-Level - [Client HTTP](https://sharpskill.dev/it/technologies/go/domande-colloquio/http-client.md): 18 domande, Mid-Level - [Codifica JSON](https://sharpskill.dev/it/technologies/go/domande-colloquio/json-encoding.md): 20 domande, Mid-Level - [Database/SQL](https://sharpskill.dev/it/technologies/go/domande-colloquio/database-sql.md): 22 domande, Mid-Level - [Pacchetto context](https://sharpskill.dev/it/technologies/go/domande-colloquio/context-package.md): 20 domande, Mid-Level - [Testing](https://sharpskill.dev/it/technologies/go/domande-colloquio/testing.md): 22 domande, Mid-Level - [Pattern di concorrenza](https://sharpskill.dev/it/technologies/go/domande-colloquio/concurrency-patterns.md): 24 domande, Mid-Level - [Framework web Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-web-frameworks.md): 20 domande, Mid-Level - [Progettazione di API REST](https://sharpskill.dev/it/technologies/go/domande-colloquio/rest-api-design.md): 20 domande, Mid-Level - [gRPC](https://sharpskill.dev/it/technologies/go/domande-colloquio/grpc.md): 22 domande, Mid-Level - [Reflection](https://sharpskill.dev/it/technologies/go/domande-colloquio/reflection.md): 20 domande, Senior - [Gestione della memoria](https://sharpskill.dev/it/technologies/go/domande-colloquio/memory-management.md): 24 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/go/domande-colloquio/performance-optimization.md): 22 domande, Senior - [Generics](https://sharpskill.dev/it/technologies/go/domande-colloquio/generics.md): 20 domande, Senior - [Go Design Patterns](https://sharpskill.dev/it/technologies/go/domande-colloquio/design-patterns.md): 24 domande, Senior - [Microservices](https://sharpskill.dev/it/technologies/go/domande-colloquio/microservices.md): 24 domande, Senior - [Sicurezza e autenticazione](https://sharpskill.dev/it/technologies/go/domande-colloquio/security-authentication.md): 24 domande, Senior - [Docker & Containerization](https://sharpskill.dev/it/technologies/go/domande-colloquio/docker-containerization.md): 20 domande, Senior - [Kubernetes Basics](https://sharpskill.dev/it/technologies/go/domande-colloquio/kubernetes-basics.md): 22 domande, Senior - [Go Avanzato](https://sharpskill.dev/it/technologies/go/domande-colloquio/advanced-go.md): 20 domande, Senior - [Sviluppo CLI](https://sharpskill.dev/it/technologies/go/domande-colloquio/cli-development.md): 20 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/go/domande-colloquio/sync-primitives