Назад к вопросам
Junior — Middle
76
Какие техники обработки параллельных задач реализованы в языке Go?
Компании, где спрашивали
Цифровая Эволюция
Ответ от нейросети
sobes.tech AI
В Go реализованы следующие техники обработки параллельных задач:
-
Горутины (goroutines) — легковесные потоки, которые запускаются с помощью ключевого слова
go. Они позволяют выполнять функции параллельно. -
Каналы (channels) — механизм коммуникации между горутинами, позволяющий передавать данные и синхронизировать выполнение.
-
Селекторы (select) — конструкция для ожидания нескольких операций с каналами, позволяющая обрабатывать данные из нескольких источников.
-
Пакет sync — содержит примитивы синхронизации, такие как
Mutex,WaitGroup,Once, которые помогают управлять доступом к общим ресурсам и координировать завершение горутин.
Пример запуска горутины и передачи данных через канал:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "готово"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg) // вывод: готово
}