Sobes.tech
Middle

Rekabet ile paralellik arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Rekabetçilik, bir sistemin aynı anda kısmen yürütülebilen birden fazla görevi yönetme yeteneğidir. Paralellik ise bu görevlerin farklı işlemci çekirdeklerinde aynı anda yürütülmesidir.

Basitçe söylemek gerekirse, rekabetçilik, birkaç görevin ilerleyebilmesi için işi organize etme ile ilgilidir, paralellik ise bu görevlerin aynı anda yürütülmesi ile ilgilidir.

Go'da rekabetçilik, goroutine'ler ve kanallar kullanılarak elde edilir, ve paralellik, bu goroutine'lerin gerçekten farklı çekirdeklerde aynı anda yürütüldüğü zaman gerçekleşir.

Go'da rekabetçilik örneği:

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

Burada "A" ve "B" görevleri rekabet halinde yürütülür, birbirleri arasında geçiş yapar ve çok çekirdekli bir işlemci üzerinde çalıştırılırsa, paralel olarak da yürütülebilirler.