Sobes.tech
Back to questions
Middle+
3

Что такое асинхронность, параллельность и конкурентность в контексте Go?

Companies where asked
МВидеоМВидео

Answer from AI

sobes.tech AI

В контексте Go:

  • Асинхронность — выполнение операций без блокировки основного потока, обычно через горутины и каналы. Позволяет запускать задачи, которые могут выполняться независимо и не ждать их завершения.

  • Параллельность — одновременное выполнение нескольких задач на разных ядрах процессора. В Go это достигается за счёт планировщика горутин, который распределяет их по системным потокам.

  • Конкурентность — способность программы управлять несколькими задачами, которые могут выполняться одновременно или по очереди, обеспечивая корректный доступ к общим ресурсам.

Пример горутины:

func worker(id int) {
    fmt.Printf("Worker %d started\n", id)
    // работа
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // асинхронный запуск
    }
    time.Sleep(time.Second) // ждем завершения
}