Назад к вопросам
Senior
7
Как работает Golang — параллельно, конкурентно или может работать и так, и так?
Компании, где спрашивали
.wrk
Ответ от нейросети
sobes.tech AI
Golang поддерживает конкурентность, а не параллелизм напрямую. Конкурентность — это способность эффективно управлять несколькими задачами, переключаясь между ними, а параллелизм — выполнение нескольких задач одновременно.
В Go конкурентность реализуется через горутины — лёгкие потоки, которые планируются рантаймом Go. Они могут выполняться параллельно, если есть несколько ядер процессора, благодаря встроенному планировщику.
Таким образом, Go может работать и конкурентно, и параллельно, в зависимости от аппаратных ресурсов и настроек среды.
Пример создания горутины:
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запускает функцию конкурентно
time.Sleep(time.Second) // ждём, чтобы горутина успела выполниться
}