Какой тип планирования горутин используется в современных версиях Go runtime?
В Go есть кооперативные точки переключения и асинхронное вытеснение. Поэтому современный runtime нельзя описывать как исключительно кооперативный планировщик.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
В Go есть кооперативные точки переключения и асинхронное вытеснение. Поэтому современный runtime нельзя описывать как исключительно кооперативный планировщик.
Читать ответgo build определяет зависимости пакетов, компилирует необходимый код и для main-пакета связывает исполняемый файл. Уже готовые результаты могут браться из кеша сборки.
Читать ответВ модели GMP G представляет горутину, M — поток ОС, P — ресурсы для выполнения Go-кода. Планировщик связывает готовую G с M, у которого есть P.
Читать ответГорутины легковесны благодаря небольшим растущим стекам и планированию множества задач поверх ограниченного набора потоков ОС. Они дешевле потоков, но не бесплатны.
Читать ответНазовите редактор, которым действительно пользуетесь, и объясните рабочий процесс: навигация, форматирование, тесты и отладка. Выбор IDE сам по себе не определяет качество Go-кода.
Читать ответИспользуйте пул из N goroutine и канал адресов. Каждая goroutine выполняет запрос с timeout, закрывает response body и печатает статус; N=1 даёт последовательное выполнение.
Читать ответРасскажите о реально написанных на Go компонентах, их задачах и вашей ответственности за реализацию и сопровождение.
Читать ответany в Go — псевдоним interface{}, то есть пустого интерфейса. Но interface с заданными методами — более узкий контракт, и он не равен any.
Читать ответНазовите фактический уровень Go: чтение кода, учебные задачи или production-разработка. Подкрепите ответ примером и отделите знание синтаксиса от опыта эксплуатации.
Читать ответДля стартового примера достаточно выбрать один язык и вывести Hello, world!. Фрагменты разных языков не являются одной программой; последний блок ошибочно назван Erlang и содержит C#.
Читать ответВ Go интерфейсы определяются как набор методов, которые должен реализовать тип, чтобы считаться соответствующим этому интерфейсу.
Читать ответВ Go можно создавать собственные типы на основе структур с помощью ключевого слова type. Это позволяет определить новый тип, который имеет структуру с набором полей.
Читать ответ