Ответ
Горутина в Go — это лёгкий поток выполнения, управляемый рантаймом Go, а не операционной системой. Горутины запускаются ключевым словом go и позволяют выполнять функции конкурентно. Они очень дёшевы: начальный размер стека всего ~2 КБ, поэтому можно запускать сотни тысяч горутин одновременно.
Пример:
func say(s string) {
for i := 0; i < 3; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("мир") // выполняется в отдельной горутине
say("привет") // выполняется в main-горутине
}
Ключевые особенности:
- Горутины легче потоков ОС — рантайм мультиплексирует их на потоки по модели M:N
- Переключение контекста происходит в user-space, без обращения к ядру
main— тоже горутина: когда она завершается, программа останавливается, не дожидаясь остальных- Для синхронизации используют
sync.WaitGroup, для обмена данными — каналы (chan) - Философия Go: «Не общайтесь, разделяя память; разделяйте память, общаясь» — предпочитайте каналы общим переменным
Видео-ответы
▶
Cобеседование на Middle в Go с тимлидом из X5: лайв-кодинг и теория
▶
Открытое собеседование на Middle Go-разработчика
▶
Собеседование на Golang 260к
▶
Открытое интервью на Middle Go-разработчика
▶
Открытое интервью на Middle Go разработчика
▶
НАВАЛИВАЮ КРИНЖА НА СОБЕСЕ В MTS DIGITAL GOLANG BACKEND
▶
Открытое интервью на Middle Go-разработчика
▶
Открытое собеседование на Golang разработчика
▶
Открытое собеседование на Go-разработчика
▶
Go lang middle interview | Интервью на позицию Go lang middle
▶
Job interview на вакансию Golang Developer middle // Курс «Golang Developer. Professional»
▶
Открытое собеседование на Go-разработчика | Навыки
▶
Открытое собеседование на Go-разработчика | Навыки
▶
Открытое собеседование на Go-разработчика | Анонс менторской программы
▶
Открытое собеседование на Go-разработчика | Тренировочные интервью
▶
Открытое интервью на Go разработчика | Эйч Навыки
▶
Открытое интервью на Go разработчика | Эйч Навыки
▶
Mock-собеседование по Go от Team Lead Ozon
▶
Mock-собеседование старшего Go разработчика из Тинькофф | Самое полное интервью
▶
Mock - собеседование от старшего разработчика из Ozon (секция Go)
▶
Mock-собеседование Go разработчика из OZON | Самое полное интервью
▶
Mock-собеседование со студентом курса Golang // Демо-занятие курса «Golang Developer. Professional»
▶
Tech Interview Fest | Моковое cобеседование для Go Junior | Solvery + Go-go! | Владимир Балун, Ozon