Junior — Middle
Çok iş parçacıklı ortamda yığın ile çalışma nasıl uygulanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, çok iş parçacıklı ortamda yığın (heap) ile çalışma, yerleşik çöp toplayıcı ve goroutine planlayıcı kullanılarak gerçekleştirilir. Yığın, dinamik nesnelerin yerleştirildiği bir bellek alanıdır ve ona erişim farklı goroutine'lerden olabilir.
Yığın ile güvenli çalışmak için Go şunları kullanır:
- Çöp toplayıcı (GC), kullanılmayan belleği otomatik olarak serbest bırakır ve sızıntıları önler.
- Mutexler ve diğer senkronizasyon primitifleri (sync paketinden), eğer paylaşılan verilere erişimi açıkça korumak gerekirse.
Örnek: Birden fazla goroutine, yığında saklanan ortak bir veri yapısına erişiyorsa, veri yarışlarını önlemek için sync.Mutex kullanmak gerekir:
var mu sync.Mutex
var sharedData = make(map[string]int)
func writeData(key string, value int) {
mu.Lock()
defer mu.Unlock()
sharedData[key] = value
}
func readData(key string) int {
mu.Lock()
defer mu.Unlock()
return sharedData[key]
}
Bu şekilde, Go çöp toplayıcı ve gerekirse senkronizasyon araçları sağlayarak yığın ile güvenli çalışmayı garanti eder.