Sobes.tech
Junior — Middle

Izskaidrojiet konkurences jēdzienu Go programmēšanas valodā un tās lomu paralēlo lietojumprogrammu izstrādē

sobes.tech AI

Atbilde no AI

Go valodā konkurence (concurrency) ir spējas programmai vienlaikus veikt vairākus uzdevumus, efektīvi izmantojot procesora resursus. Go valodā to īsteno ar gorutīnām, kas ir vieglas pavedienu struktūras, kuras tiek palaistas ar atslēgvārdu go.

Konkurence ļauj rakstīt paralēlas lietojumprogrammas, kur dažādas koda daļas tiek izpildītas vienlaikus, kas palielina programmu veiktspēju un atsaucību.

Gorutīnas savstarpēji sinhronizējas un apmainās ar datiem, izmantojot kanālus (channels), kas nodrošina drošu komunikāciju bez tiešas bloķēšanas.

Piemērs:

package main
import (
    "fmt"
    "time"
)

func worker(id int) {
    fmt.Printf("Darbinieks %d sākas\n", id)
    time.Sleep(time.Second)
    fmt.Printf("Darbinieks %d beidzas\n", id)
}

func main() {
    for i := 1; i <= 3; i++ {
        go worker(i) // palaist gorutīnu
    }
    time.Sleep(2 * time.Second) // gaidīt gorutīnu pabeigšanu
}

Šajā piemērā trīs gorutīnas darbojas vienlaikus, demonstrējot konkurenci Go valodā.