Специализация
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 в телеграм
Как устроены потоки в JavaScript?
JavaScript работает на одном потоке, что означает, что он выполняет код последовательно, один за другим. Однако он использует Event Loop для обработки асинхронных операций и событий. Когда выполняется асинхронная операция, она ставится в очередь, и JavaScript продолжает выполнять следующий код, пока не придет время обработать асинхронную операцию. Таким образом, хотя JavaScript и не использует многопоточность, он эффективно управляет асинхронными задачами.
Как потоки/процессы обмениваются данными (очереди, общие ресурсы)?
Потоки используют общую память, но требуют блокировок (Lock), чтобы избежать гонки данных. Процессы не имеют общей памяти, поэтому обмениваются данными через Queue, Pipe или разделяемые объекты (Manager).
Чем отличаются холодные (cold) и горячие (hot) потоки данных?
Cold Flow: Запускает генерацию данных для каждого подписчика.
Hot Flow: Данные генерируются независимо от подписчиков (например, SharedFlow).
Почему не стоит создавать потоки вручную?
Создание потоков вручную плохо масштабируется и сложно контролируется.
Разработчику приходится самостоятельно управлять жизненным циклом потоков.
Это приводит к утечкам ресурсов и ошибкам синхронизации.
Современная Java предлагает более безопасные абстракции.
В каких случаях Python-потоки могут выполняться параллельно?
Python-потоки могут выполняться параллельно во время I/O-операций или при выполнении нативного кода без GIL. В чистом Python-коде параллельного выполнения нет из-за GIL. Реальный параллелизм достигается либо за счёт I/O, либо за счёт внешних библиотек. Для CPU-задач используют процессы.
Рейтинг:
3
Сложность:
8
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
5
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
7