Sobes.tech
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-ஐ பாதுகாப்பதுடன், தேவையானபோது ஒத்திசைவு கருவிகளையும் வழங்குகிறது.