Назад к вопросам
VK Cloud
Самокат
OZON
Junior — Middle
117
Какое отличие между горутиной и системным потоком в контексте выполнения задач?
Компании, где спрашивали
Эрливидео
Цифровая Эволюция
Магнус Тех
Rubytech
BWG
Кадровое агентство BWG
Ответ от нейросети
sobes.tech AI
Горутина — это лёгкая, управляемая средой выполнения Go (runtime) единица выполнения, которая использует очень мало памяти и может быть запущена в большом количестве одновременно. Системный поток (thread) — это более тяжёлая единица планирования операционной системы.
Основные отличия:
- Горутины намного легче по ресурсам, чем системные потоки.
- Планирование горутин происходит внутри Go runtime, а не ОС.
- Тысячи горутин могут работать одновременно, тогда как системных потоков обычно меньше из-за затрат на создание и переключение.
Пример создания горутины:
func task() {
fmt.Println("Выполнение задачи")
}
func main() {
go task() // запуск горутины
time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}
Таким образом, горутины позволяют эффективно выполнять множество задач параллельно с меньшими накладными расходами.