Специализация
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 в телеграм
Какие есть CoroutineScope и Dispatcher, и как они применяются?
CoroutineScope определяет жизненный цикл корутин, например GlobalScope, viewModelScope, lifecycleScope, а Dispatcher указывает, на каком потоке выполнять код: Dispatchers.Main для UI, Dispatchers.IO для I/O, Dispatchers.Default для CPU-интенсивных задач. Их комбинируют, чтобы корутины запускались в нужных условиях и отменялись вместе с жизненным циклом.
Как suspendCancellableCoroutine помогает работать с колбэками?
suspendCancellableCoroutine приостанавливает корутину и предоставляет Continuation, который можно возобновить вручную. Это позволяет обернуть API с колбэками в suspend-функцию, делая код линейным. Если корутина отменяется, можно корректно освободить ресурсы.
Для чего нужен SupervisorJob? Как создать кастомный CoroutineScope?
SupervisorJob: ошибка в одной корутине не отменяет другие.
Кастомный CoroutineScope:
val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)Что предпочтительнее для асинхронности в Unity: Task, UniTask или Coroutine?
Coroutines хороши для игровых последовательностей, но они ограничены главным потоком и не могут выполнять реальную асинхронную работу. Task позволяет выполнять тяжёлые операции в фоновом потоке, но требует осторожности, так как Unity-API потоконебезопасно. UniTask — это лёгкая и быстрая альтернатива Task под Unity, которая интегрируется с корутинами и не создает лишних аллокаций. Выбор зависит от задачи: для игровых сценариев — Coroutines, для фоновых вычислений — Task, для оптимизированного async-await в Unity — UniTask.
Что такое Coroutine и почему корутины привязаны к MonoBehaviour?
Coroutine — это метод, который выполняется частями между кадрами, используя yield. Unity сама вызывает корутины в PlayerLoop. Они привязаны к MonoBehaviour, потому что Unity должна знать, к какому игровому объекту относится корутина и как управлять её жизненным циклом. Если объект отключён или уничтожен, корутина тоже должна остановиться. Это обеспечивает естественную синхронизацию с игровым миром.
Рейтинг:
2
Сложность:
6
Рейтинг:
4
Сложность:
5
Рейтинг:
2
Сложность:
5
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
4