Go

Senkronizasyon İlkelleri

sync.Mutex, RWMutex, Once, Pool, Map, Cond, atomik işlemler

22 mülakat soruları·
Mid-Level
1

Go'da sync.Mutex nedir?

Cevap

Bir sync.Mutex (mutual exclusion lock), aynı anda yalnızca bir goroutine'in kritik bölüme erişebilmesini sağlayan bir senkronizasyon ilkesidir. Lock çağrısı, mutex kullanılabilir olana kadar bloklar ve Unlock onu diğer goroutine'ler için serbest bırakır. Paylaşılan verilere eşzamanlı erişimi korumak için kullanılır.

2

Bir sync.Mutex üzerinde Lock'tan sonra Unlock'u çağırmayı unutursak ne olur?

Cevap

Unlock'u unutmak potansiyel bir deadlock oluşturur çünkü diğer goroutine'ler mutex'i elde etmek için süresiz bekler. En iyi uygulama, panic durumunda bile Unlock'un çağrılmasını sağlamak için defer kullanmaktır. Lock sızıntılarını önlemek için Lock ve Unlock'u her zaman aynı scope içinde eşleştirin.

3

sync.Mutex ile sync.RWMutex arasındaki temel fark nedir?

Cevap

sync.RWMutex, RLock aracılığıyla birden fazla eşzamanlı okumaya izin verir ancak Lock aracılığıyla yalnızca tek bir özel yazmaya izin verir. Bu, okuyucular birbirini engellemediği için okuma ağırlıklı senaryolarda performansı artırır. Okumalar sık ve yazmalar nadir olduğunda RWMutex kullanın.

4

Bir sync.Mutex üzerinde Unlock ile defer neden kullanılır?

5

sync.Mutex yerine sync.RWMutex ne zaman tercih edilmelidir?

+19 mülakat soruları

Bir sonraki mülakatın için Go'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla