Go

Основи goroutines

Goroutines, ключове слово go, sync.WaitGroup, runtime.GOMAXPROCS, витоки goroutine

20 питань зі співбесід·
Junior
1

Що таке goroutine у Go?

Відповідь

Goroutine — це функція, яка виконується конкурентно з іншими функціями та керується середовищем виконання Go, а не ОС. Вона надзвичайно легка (кілька КБ початкового стеку) порівняно з потоком ОС (кілька МБ). Планувальник Go може мультиплексувати тисячі чи навіть мільйони goroutines на обмеженій кількості потоків ОС, що робить конкурентність дуже доступною в Go.

2

Як запустити нову goroutine у Go?

Відповідь

Ключове слово go, за яким іде виклик функції, запускає нову goroutine. Наприклад, 'go myFunction()' або 'go func() { ... }()' для анонімної функції. Goroutine виконується негайно паралельно з кодом, що її викликає. Увага: функція main автоматично не очікує завершення запущених goroutines.

3

У чому полягає основна відмінність між goroutine та потоком ОС?

Відповідь

Goroutine споживає близько 2 КБ початкового стеку, тоді як потік ОС зазвичай потребує 1-2 МБ. Середовище виконання Go керує плануванням goroutines у просторі користувача (M:N scheduling), мультиплексуючи тисячі goroutines на кількох потоках ОС. Це дозволяє створювати мільйони goroutines без перевантаження системи, на відміну від потоків ОС, обмежених ресурсами.

4

Що станеться, якщо основна програма завершиться до того, як goroutine закінчить роботу?

5

Як середовище виконання Go керує виконанням goroutines?

+17 питань зі співбесід

Опануй Go для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно