Sobes.tech
Назад к вопросам
Junior — Middle
117

Какое отличие между горутиной и системным потоком в контексте выполнения задач?

Компании, где спрашивали
Эрливидео
Цифровая Эволюция
Магнус Тех
Rubytech
VK CloudVK Cloud
СамокатСамокат
OZONOZON
BWG
Кадровое агентство BWG

Ответ от нейросети

sobes.tech AI

Горутина — это лёгкая, управляемая средой выполнения Go (runtime) единица выполнения, которая использует очень мало памяти и может быть запущена в большом количестве одновременно. Системный поток (thread) — это более тяжёлая единица планирования операционной системы.

Основные отличия:

  • Горутины намного легче по ресурсам, чем системные потоки.
  • Планирование горутин происходит внутри Go runtime, а не ОС.
  • Тысячи горутин могут работать одновременно, тогда как системных потоков обычно меньше из-за затрат на создание и переключение.

Пример создания горутины:

func task() {
    fmt.Println("Выполнение задачи")
}

func main() {
    go task() // запуск горутины
    time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}

Таким образом, горутины позволяют эффективно выполнять множество задач параллельно с меньшими накладными расходами.