Специализация
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 в телеграм
Что такое корутина в Python?
Корутина — это специальная функция в Python, которая может быть приостановлена и возобновлена в будущем. Корутины используются для выполнения асинхронного кода, который не блокирует выполнение других задач. Они создаются с помощью ключевых слов async и await.
Какова цель функции withContext() в Kotlin корутинах?
Функция withContext() в Kotlin корутинах используется для смены контекста выполнения корутины на другой диспетчер. Она позволяет выполнить код в другом потоке (например, для операций с сетью или ввода/вывода) без блокировки текущего потока.
Как обрабатывать исключения в Kotlin корутинах?
В Kotlin корутинах исключения обрабатываются с помощью блоков try-catch внутри самой корутины или в коде, который её вызывает. Если исключение не поймано в корутине, оно будет передано в вызывающий код.
Что такое Flow в Kotlin корутинах?
Flow в Kotlin — это асинхронный поток данных, который может эмитировать несколько значений с течением времени. Он используется для обработки последовательностей данных, получаемых асинхронно, и предоставляет операторов для трансформации и комбинирования данных.
Что происходит с дочерними корутинами при отмене родительской и как этого избежать?
По умолчанию корутины иерархичны: при отмене родительского Job автоматически отменяются все дочерние. Чтобы дочерняя корутина продолжила работу независимо, её надо запускать в новом CoroutineScope или использовать supervisorScope/SupervisorJob, который не распространяет отмену на сверстников.
Какие механизмы синхронизации доступны в корутинах?
Для чего нужны каналы (Channel) в корутинах?
Что можно использовать в качестве альтернативы корутинам?
Рейтинг:
2
Сложность:
6
В корутинах доступны Mutex для мьютексов, Channel и Actor для последовательной обработки сообщений, а также Semaphore из kotlinx.coroutines.sync. Кроме того, существует withContext(Dispatchers.IO) для переключения контекста и atomic примитивы из kotlinx.atomicfu.
Рейтинг:
2
Сложность:
6
Channel в корутинах — это неблокирующая очередь для обмена элементов между корутинами, позволяющая отправителю и получателю работать независимо. Их используют для построения pipeline, fan-out/fan-in схем и взаимодействия producer/consumer без прямого вызова.
Рейтинг:
3
Сложность:
5
Корутины — не единственный способ организовать задержки и асинхронность. Вместо них можно использовать: 1) Invoke и InvokeRepeating для простых отложенных вызовов; 2) Таймеры в методе Update, которые считают время с помощью Time.deltaTime; 3) Асинхронные методы C# (async/await), которые стали очень удобны в современных версиях Unity; 4) Систему событий для реакции на изменения в игре; 5) Пакет DOTween для создания плавных анимаций, которые сами управляют временем.
Рейтинг:
2
Сложность:
8
Рейтинг:
2
Сложность:
7
Рейтинг:
3
Сложность:
7
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
6