Sobes.tech
Middle+

Ի՞նչ է ասինխրոնությունը, պառլելությունը և մրցակցությունը Go-ի կոնտեքստում։

sobes.tech AI

Պատասխան AI-ից

Go կոնտեքստում.

  • Ասինխրոնություն — գործողությունների կատարման առանց հիմնական հոսքը փակելու, սովորաբար գորուտիններ և ալիքներ օգտագործելով: Դա թույլ է տալիս սկսել անկախ և սպասել դրանց ավարտին չպահանջող առաջադրանքներ:

  • Պարալելություն — միաժամանակյա մի քանի առաջադրանքների կատարմամբ տարբեր պրոցեսորային բլոկներում: Go-ում դա հասնում է գորուտինների պլանավորիչով, որը դրանք բաժանում է համակարգային թելերի վրա:

  • Կոնկուրս — ծրագրի կարողությունը կառավարել միաժամանակ կամ հերթական առաջադրանքները, ապահովելով ճիշտ մուտք դեպի ընդհանուր ռեսուրսներ:

Գորուտինի օրինակ:

func worker(id int) {
    fmt.Printf("Աշխատող %d սկսվեց\n", id)
    // աշխատանք
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // ասինխրոն մեկնարկ
    }
    time.Sleep(time.Second) // սպասում ավարտին
}