Middle
Rəqabət və paralellik arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Müsabiqəçilik — bu sistemin eyni zamanda qismən icra oluna bilən bir neçə vəzifəni idarə etmək qabiliyyətidir. Paralellik isə bu vəzifələrin müxtəlif prosessor nüvələrində eyni zamanda icra olunmasıdır.
Sadə desək, müsabiqəçilik işin təşkilidir ki, bir neçə vəzifə irəliləyə bilsin, paralellik isə bu vəzifələrin eyni zamanda icra olunmasıdır.
Go-da müsabiqəçilik goroutinlər və kanallar vasitəsilə əldə edilir, və paralellik bu goroutinlərin həqiqətən müxtəlif nüvələrdə eyni zamanda icra olunması zamanı baş verir.
Go-da müsabiqəçilik nümunəsi:
package main
import (
"fmt"
"time"
)
func task(name string) {
for i := 0; i < 3; i++ {
fmt.Println(name, "addım", i)
time.Sleep(100 * time.Millisecond)
}
}
func main() {
go task("A")
go task("B")
time.Sleep(500 * time.Millisecond)
}
Burada "A" və "B" vəzifələri müsabiqə ilə icra olunur, bir-biri arasında keçid edir və çox nüvəli prosessor üzərində işlədilirsə, paralel olaraq icra oluna bilərlər.