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 предоставя прости и ефективни средства за организиране на паралелни изчисления.