Sobes.tech
Middle

Čím se liší konkurence od paralelnosti?

sobes.tech AI

Odpověď od AI

Konkurentnost je sposobnost sustava da upravlja s više zadataka koji se mogu djelomično istovremeno izvršavati, prebacujući se između njih. Paralelnost je istovremeno izvršavanje više zadataka na različitim jezgrama procesora.

Jednostavno rečeno, konkurentnost se odnosi na organizaciju rada tako da više zadataka može napredovati, dok se paralelnost odnosi na njihovo istovremeno izvršavanje.

U Go-u, konkurentnost se postiže pomoću gorutina i kanala, a paralelnost kada se te gorutine stvarno izvršavaju istovremeno na različitim jezgrama procesora.

Primer konkurentnosti u Go-u:

package main
import (
    "fmt"
    "time"
)
func task(name string) {
    for i := 0; i < 3; i++ {
        fmt.Println(name, "korak", i)
        time.Sleep(100 * time.Millisecond)
    }
}
func main() {
    go task("A")
    go task("B")
    time.Sleep(500 * time.Millisecond)
}

Ovde, zadaci "A" i "B" se izvršavaju konkurentno, naizmenično, a ako se pokrenu na višejedrnom procesoru, mogu se izvršavati paralelno.