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) // ждем завершения
}