Middle
Kā konkurētspēja atšķiras no paralēlās?
sobes.tech AI
Atbilde no AI
Konkurētība ir sistēmas spēja pārvaldīt vairākus uzdevumus, kuri daļēji var tikt izpildīti vienlaikus, pārslēdzoties starp tiem. Paralēlisms ir vairāku uzdevumu vienlaicīga izpilde dažādos procesora kodolos.
Vienkāršāk sakot, konkurētība ir par darba organizēšanu tā, lai vairāki uzdevumi varētu progresēt, bet paralēlisms — par šo uzdevumu vienlaicīgu izpildi.
Go valodā konkurētība tiek panākta ar gorutīnām un kanāliem, bet paralēlisms — kad šīs gorutīnas patiešām tiek izpildītas vienlaikus dažādos kodolos.
Piemērs konkurētībai Go:
package main
import (
"fmt"
"time"
)
func task(name string) {
for i := 0; i < 3; i++ {
fmt.Println(name, "solis", i)
time.Sleep(100 * time.Millisecond)
}
}
func main() {
go task("A")
go task("B")
time.Sleep(500 * time.Millisecond)
}
Šeit uzdevumi "A" un "B" tiek izpildīti konkurēt, pārslēdzoties starp tiem, un, ja tos palaist uz daudzkodolu procesora, tie var tikt izpildīti paralēli.