Junior — Middle
Farklı iş parçacıkları aynı bellek adresiyle aynı anda etkileşime geçebilir mi?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, Go'da farklı goroutine'ler (iş parçacıkları) aynı bellek adresine aynı anda erişebilir. Ancak, bu durum yarış koşullarına (race conditions) yol açabilir, eğer erişim senkronize edilmemişse. Paylaşılan bellekle güvenli etkileşim için senkronizasyon mekanizmaları kullanılır, örneğin mutexler (sync.Mutex), kanallar (chan) veya sync/atomic paketinden atomik işlemler.
Paylaşılan bir değişkene erişimi korumak için mutex kullanımına örnek:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
counter++
mu.Unlock()
}
Bu önlemler olmadan, eşzamanlı erişim programın beklenmedik davranışlara yol açabilir.