Специализация
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 в телеграм
В чем отличие между microtask queue и task queue?
В JavaScript есть две очереди для обработки асинхронных задач: microtask queue и task queue. Microtask queue содержит задачи, такие как Promise и MutationObserver, которые выполняются после завершения текущего стека выполнения, но перед выполнением задач из task queue. В отличие от этого, task queue содержит задачи, связанные с событиями и таймерами, которые обрабатываются только после выполнения всех микротасков.
Что такое Task? Как запустить несколько задач?
Task — это обёртка вокруг корутины для параллельного выполнения. Для запуска нескольких задач используйте asyncio.create_task() или asyncio.gather().
Чем отличается detached task от обычной?
Detached task не наследует контекст родительской задачи (приоритет, actor), while regular task наследует. Detached task является unstructured и требует ручного управления, while regular task привязана к scope.
Почему в Unity используют UniTask вместо стандартных .NET Task?
UniTask оптимизирован для Unity и решает ключевые проблемы стандартных Task:
Производительность: Минимизирует аллокации памяти (сборки мусора), что критично для 60 FPS.
Интеграция с Unity: Позволяет легко возвращаться в основной поток (PlayerLoop) для работы с Unity API.
Упрощение кода: Предоставляет специализированные ожидания (WaitUntil, NextFrame) и лучшую поддержку async/await в контексте игры.
Работал с UniTask?
UniTask - это асинхронная библиотека для Unity, которая предоставляет альтернативу стандартным корутинам и Task'ам. Она позволяет писать асинхронный код без аллокаций памяти, что улучшает производительность. UniTask интегрируется с Unity через AsyncOperation и поддерживает отмену операций. Библиотека особенно полезна для замены корутин в случаях, когда нужна лучшая производительность и контроль над асинхронными операциями.
При выполнении UniTask создаётся ли новый поток?
В чём отличие UniTask от Task?
Почему Task не работает в WebGL?
Как UniTask взаимодействует с Unity PlayerLoop?
Чем thread отличается от task?
Рейтинг:
4
Сложность:
7
Нет, при выполнении UniTask по умолчанию не создается новый поток. UniTask работает в основном потоке Unity, аналогично корутинам. Однако UniTask предоставляет возможность явно запускать задачи в пуле потоков через UniTask.Run(). Основное выполнение происходит в контексте главного потока, что позволяет безопасно работать с Unity API. Это отличает UniTask от стандартных Task, которые могут использовать фоновые потоки.
Рейтинг:
3
Сложность:
7
UniTask - это специализированная библиотека для Unity, которая предоставляет альтернативу стандартным Task. Основные отличия включают лучшую производительность за счет избегания аллокаций, интеграцию с Unity PlayerLoop и поддержку WebGL. UniTask также предоставляет дополнительные операторы для работы с Unity-специфичными объектами. Это делает его более подходящим для игровой разработки где производительность критична.
Рейтинг:
3
Сложность:
8
Task не работает в WebGL потому что эта платформа не поддерживает настоящие потоки (threads) из-за ограничений браузеров. WebGL работает в однопоточном окружении JavaScript где параллелизм достигается через event loop. Библиотека Task в .NET использует ThreadPool который требует настоящих потоков ОС. Поэтому большинство многопоточных операций Task недоступны в WebGL сборках.
Рейтинг:
2
Сложность:
9
UniTask интегрируется с Unity PlayerLoop через низкоуровневый API, позволяющий вставлять собственные этапы в главный цикл выполнения Unity. Это позволяет UniTask выполнять продолжения асинхронных операций в правильном контексте и порядке обновления. Такая интеграция обеспечивает правильную работу с Unity-объектами и синхронизацию с основными системами движка как Physics, Rendering и Input.
Рейтинг:
4
Сложность:
6
Thread (поток) - это низкоуровневый объект операционной системы, который представляет отдельный поток выполнения. Task (задача) - это высокоуровневая абстракция в .NET, которая представляет асинхронную операцию и не обязательно привязана к конкретному потоку. Thread создается явно и требует ручного управления, в то время как Task управляется планировщиком задач, который сам решает, когда и в каком потоке выполнять работу. Thread всегда занимает поток из пула потоков, а Task может выполняться без захвата потока вообще (например, при операциях ввода-вывода).
Рейтинг:
4
Сложность:
8
Рейтинг:
1
Сложность:
5
Рейтинг:
2
Сложность:
8
Рейтинг:
4
Сложность:
7
Рейтинг:
3
Сложность:
6