Senior
38
Jak działa Golang — równolegle, konkurencyjnie, czy może działać w obie strony?
Firmy, w których zadano pytania
.wrk
Odpowiedź od AI
sobes.tech AI
Golang поддерживает конкурентность, а не параллелизм напрямую. Конкурентность — это способность эффективно управлять несколькими задачами, переключаясь между ними, а параллелизм — выполнение нескольких задач одновременно.
В Go конкурентность реализуется через горутины — лёгкие потоки, которые планируются рантаймом Go. Они могут выполняться параллельно, если есть несколько ядер процессора, благодаря встроенному планировщику.
Таким образом, Go может работать и конкурентно, и параллельно, в зависимости от аппаратных ресурсов и настроек среды.
Пример создания горутины:
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запускает функцию конкурентно
time.Sleep(time.Second) // ждём, чтобы горутина успела выполниться
}