Sobes.tech
Junior — Middle

Как се реализират паралелните изчисления в езика Go?

sobes.tech AI

Отговор от AI

В езика Go паралелните изчисления се реализират с помощта на горутини (goroutines) и канали (channels).

Горутините са леки нишки, които се стартират с ключовата дума go. Те позволяват изпълнение на функции асинхронно и паралелно.

Пример за паралелно стартиране на две функции:

func задача(id int) {
    fmt.Printf("Задача %d започна\n", id)
    // имитация на работа
    time.Sleep(time.Second)
    fmt.Printf("Задача %d приключи\n", id)
}

func main() {
    go задача(1)
    go задача(2)
    time.Sleep(2 * time.Second) // за да приключат горутините
}

Каналите се използват за синхронизация и пренос на данни между горутините, което позволява безопасна размяна на информация без блокиране.

По този начин, Go предоставя прости и ефективни средства за организиране на паралелни изчисления.