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