Junior — Middle
როგორ ხორციელდება სამუშაო სია მრავალთრანიან გარემოში?
sobes.tech AI
პასუხი AI-სგან
Go-யில், பலதுறை சூழலில் heap-ஐப் பணியாற்றும் போது, உள்ளடக்கப்பட்ட கழிவுசேகரி மற்றும் goroutine திட்டமிடுபவரின் உதவியுடன் செயல்படுகிறது. Heap என்பது, இயங்கும் பொருட்கள் இடம் பெறும் நினைவகப் பகுதி ஆகும், மற்றும் அதனை பல goroutine-களிடமிருந்து அணுகலாம்.
Heap-ஐ பாதுகாப்பாக பணியாற்ற, Go பின்வருவனவற்றை பயன்படுத்துகிறது:
- கழிவுசேகரி (GC), இது தானாகவே பயன்படுத்தப்படாத நினைவகத்தை விடுவிக்கிறது, மற்றும் நினைவக நுகர்வைத் தடுக்கும்.
- Mutex-கள் மற்றும் பிற ஒத்திசைவு primitives (sync தொகுப்பிலிருந்து), அவசியமானபோது பொதுவான தரவுகளுக்கு அணுகலை தெளிவாக பாதுகாக்க.
உதாரணம்: பல goroutine-கள், heap-ல் சேமிக்கப்பட்ட பொதுவான தரவு அமைப்பை அணுகும்போது, race நிலைகளைத் தவிர்க்க sync.Mutex-ஐ பயன்படுத்த வேண்டும்:
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]
}
இந்த வழியில், Go, கழிவுசேகரி மூலம் heap-ஐ பாதுகாப்பதுடன், தேவையானபோது ஒத்திசைவு கருவிகளையும் வழங்குகிறது.