Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое runtime (планировщик scheduler)?
runtime — это библиотека в Go, которая управляет запуском и выполнением горутин, а также их взаимодействием с операционной системой. Планировщик (scheduler) в Go отвечает за распределение задач (горутин) по доступным ядрам процессора.
Как устроен runtime в Go?
runtime в Go — это система, которая управляет памятью, горутинами и взаимодействием с операционной системой. Она включает в себя планировщик, сборщик мусора и другие компоненты, которые помогают эффективно выполнять программы.
Что такое Common Language Runtime (CLR)?
CLR — это виртуальная машина, которая является частью .NET Framework. Она управляет выполнением программ, обеспечивая такие услуги, как управление памятью, многозадачностью, безопасность типов и удаленным вызовом. CLR также разделяет код на управляемый и неуправляемый, где управляемый код работает в его среде.
В чём отличие регистрации BroadcastReceiver в манифесте и в коде (runtime-регистрация)?
При объявлении в манифесте приёмник работает даже если приложение не запущено (до Android 8.0, с ограничениями в O+), а runtime-регистрация (registerReceiver) действует только пока жив активный компонент (Activity/Service) и служит для динамических фильтров. Manifest-регистрация удобна для системных событий, runtime — для событий в пределах экрана.
Интерфейс проверяется в compile-time или runtime?
Статическая проверка соответствия интерфейсу методам типа происходит в compile-time при явной или неявной реализации. Однако runtime происходит проверка при использовании приведения через .(Type), где может быть panic или ошибка, если тип не тот.
Почему unowned считается быстрее weak? Как это реализовано на уровне runtime?
В чём отличие runtime.Goexit() от os.Exit() и когда их применяют?
Как работает механизм preemption (принудительного вытеснения) в Go runtime?
Почему Go runtime использует “work stealing” модель и как она работает?
Почему в runtime невозможно получить точный тип generic-параметра?
Рейтинг:
2
Сложность:
6
weak ссылки требуют проверки и автоматического обнуления при деинициализации объекта, что добавляет накладные расходы на хранение в таблице слабых ссылок. unowned — обычный указатель без дополнительной обработки. В runtime это отличается отсутствием регистрации в weak-таблице и лишних проверок.
Рейтинг:
4
Сложность:
6
runtime.Goexit() завершает текущую горутину, вызывая все defer.
os.Exit() завершает весь процесс немедленно, без выполнения defer и очистки.
Рейтинг:
3
Сложность:
7
Preemption — это механизм, который прерывает долго работающие горутины, чтобы дать время другим. Он реализован через “safe points” и сигналы.
Рейтинг:
4
Сложность:
8
Work stealing — это механизм, при котором бездействующие worker-потоки «крадут» задачи из очередей других потоков. Это снижает простои и улучшает баланс нагрузки.
Рейтинг:
5
Сложность:
6
В runtime невозможно получить точный тип generic-параметра из-за type erasure. Во время компиляции generic-типы стираются и заменяются на Object или на верхнюю границу. JVM не хранит информацию о конкретных параметрах типа. Поэтому List<String> и List<Integer> в runtime выглядят одинаково. Это осознанное архитектурное решение Java.
Рейтинг:
5
Сложность:
8
Рейтинг:
3
Сложность:
8
Рейтинг:
3
Сложность:
3
Рейтинг:
2
Сложность:
7
Рейтинг:
3
Сложность:
5