Sobes.tech
Back to questions
Junior — Middle
89

Каким образом реализуются параллельные вычисления в языке Go?

Companies where asked
Positive TechnologiesPositive Technologies

Answer from AI

sobes.tech AI

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

Горутины — это легковесные потоки, которые запускаются с помощью ключевого слова go. Они позволяют выполнять функции асинхронно и параллельно.

Пример параллельного запуска двух функций:

func task(id int) {
    fmt.Printf("Task %d started\n", id)
    // имитация работы
    time.Sleep(time.Second)
    fmt.Printf("Task %d finished\n", id)
}

func main() {
    go task(1)
    go task(2)
    time.Sleep(2 * time.Second) // чтобы горутины успели завершиться
}

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

Таким образом, Go предоставляет простые и эффективные средства для организации параллельных вычислений.