Bütün goroutinlar varsayılan olaraq eyni zamanda və paralel şəkildə işləməlidirmi?
sobes.tech Süni İntellekt
AI-dan cavab
Xeyr, bütün goroutine-lər standart olaraq eyni vaxtda və paralel şəkildə işləməyə məcbur deyil. Goroutine-lər, Go-nun planlayıcısı tərəfindən planlaşdırılan yüngül iş parçacqlarıdır.
Bir neçə goroutine işə saldığınız zaman, onlar ardıcıl və ya paralel şəkildə işləyə bilər, bu, mövcud sistem iş parçacığı sayı (GOMAXPROCS) və cari yüklənməyə bağlıdır.
Standart olaraq, əgər GOMAXPROCS 1-ə bərabərdirsə, goroutine-lər rəqabət şəklində, amma paralel deyil — yəni, onların arasında keçid planlayıcı səviyyəsində baş verir, amma yalnız biri eyni vaxtda işləyir.
Həqiqi paralelliyi əldə etmək üçün, GOMAXPROCS-ı artırmaq lazımdır (adətən prosessor nüvələrinin sayı ilə eyni). Beləliklə, bir neçə goroutine müxtəlif nüvələrdə eyni vaxtda işləyə bilər.