Junior — Middle
Go программалоо тилиндеги атаандаштык концепциясын жана анын параллелдүү колдонмолорду иштеп чыгууда ролун түшүндүрүңүз
sobes.tech AI
AIден жооп
Go тилинде, конкуренция (concurrency) — бул программа бир убакта бир нече тапшырманы аткаруу жөндөмдүүлүгү, бул процессор ресурстарын эффективдүү пайдаланууга мүмкүндүк берет. Go тилинде бул go ачкыч сөзү менен ишке киргизилген жеңил жиптер — горутиндер аркылуу ишке ашырылат.
Конкуренция параллелдүү колдонмолорду жазууга мүмкүндүк берет, анда коддун ар кандай бөлүктөрү бир убакта иштейт, бул программалардын иштөө ылдамдыгын жана жооп берүү жөндөмдүүлүгүн жогорулатат.
Горутиндердин ортосунда синхрондоштуруу жана маалымат алмашуу үчүн каналдар (channels) колдонулат, алар ачык блоктоолорсуз коопсуз байланыш камсыздайт.
Мисал:
package main
import (
"fmt"
"time"
)
func worker(id int) {
fmt.Printf("Жумушчу %d башталды\n", id)
time.Sleep(time.Second)
fmt.Printf("Жумушчу %d аяктады\n", id)
}
func main() {
for i := 1; i <= 3; i++ {
go worker(i) // горутин баштоо
}
time.Sleep(2 * time.Second) // горутиндердин аякташын күтүү
}
Бул мисалда үч горутин бир убакта иштейт, бул Go тилиндеги конкуренцияны көрсөтөт.