Junior — Middle
Оё шумораи гурутинҳое, ки эҷод мешаванд, бо шумораи ядро дар процессор алоқаманд аст?
sobes.tech AI
Ҷавоб аз AI
Бороти, ки дар Go эҷод мешаванд, мустақиман бо шумораи ядроҳои процессор алоқаманд нестанд. Шумо метавонед бисёр goroutine эҷод кунед — онҳо равандҳои сабук мебошанд, ки аз ҷониби runtime-и Go идора мешаванд, ва шуморашон асосан ба хотири ёдгирии дастрас ва мантиқи барнома маҳдуд аст.
Шумораи ядроҳо ба шумораи равандҳои системаи амалӣ таъсир мерасонад, ки метавонанд ҳамзамон иҷро шаванд, ва ба параметри GOMAXPROCS, ки шумораи максималии равандҳои иҷроишро муайян мекунад, таъсир мерасонад. Аммо, шумораи goroutine-ҳо одатан хеле зиёдтар аз шумораи ядроҳо аст, зеро онҳо самаранок нақшакашӣ ва иваз мешаванд дар дохили runtime.
Масалан:
runtime.GOMAXPROCS(4) // 4 ядро истифода мебарем
for i := 0; i < 1000; i++ {
go func(n int) {
fmt.Println("Goroutine", n)
}(i)
}
time.Sleep(time.Second)
Ин ҷо 1000 goroutine эҷод мешавад, ҳарчанд танҳо 4 ядро мавҷуд аст.