Специализация
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 в телеграм
Что такое threading?
Threading (многозадачность с потоками) — это возможность выполнять несколько потоков внутри одного процесса. Каждый поток выполняет свою задачу, но все они разделяют общую память и данные, что делает работу с потоками более эффективной для задач с блокирующими операциями, такими как чтение файлов или работа с сетью.
В чем отличие асинхронности, threading'га и мультипроцессинга?
Асинхронность, многозадачность с потоками (threading) и многозадачность с процессами (multiprocessing) — это разные подходы к выполнению нескольких задач. Асинхронность используется для работы с долгими операциями без блокировки, потоки позволяют выполнять задачи параллельно в одном процессе, а процессы выполняются в отдельных адресных пространствах.
Worker threads - профиты. Что происходит при передачи данных в worker thread. Хорошо ли ведут себя на I/O операциях
Worker Threads позволяют выполнять CPU-интенсивные задачи без блокировки основного потока. Данные передаются через копирование или SharedArrayBuffer. Для I/O операций лучше использовать асинхронные методы, так как Worker Threads оптимизированы для вычислений.
Что такое ThreadLocal? Практический пример использования.
ThreadLocal позволяет хранить данные, которые доступны только одному потоку. Пример: хранение идентификатора пользователя в веб-запросе.
Как запустить поток (Thread)? Почему вызов run() напрямую не создаёт новый поток?
Поток запускается через start(), который:
Создает новый поток ОС
Вызывает run() в новом потоке
Прямой вызов run() работает в текущем потоке, не создавая новый.
Какие проблемы может вызвать Executors.newCachedThreadPool()? Когда его уместно применять?
Как ThreadLocal используется для передачи параметров, привязанных к потоку?
Можно ли использовать concurrent.futures.ThreadPoolExecutor в FastAPI эндпоинте? Это опасно?
Что такое Thread? Чем он отличается от Process?
Что такое «зомби-процессы» и как они соотносятся с потоками (threads)?
Рейтинг:
2
Сложность:
5
newCachedThreadPool() создает потоки по требованию и убирает неиспользуемые через 60 секунд. Опасен неограниченным ростом потоков при высокой нагрузке, что приводит к исчерпанию памяти или CPU. Уместен только для редких коротких задач.
Рейтинг:
2
Сложность:
6
ThreadLocal позволяет хранить данные, которые доступны только внутри одного потока. Это полезно для передачи контекста (например, ID пользователя) без явной передачи параметров.
Рейтинг:
2
Сложность:
7
Использование ThreadPoolExecutor в FastAPI возможно, но требует осторожности, так как это может повлиять на производительность и масштабируемость приложения.
Рейтинг:
2
Сложность:
8
В Ruby поток (Thread) — это легковесный исполнительный поток, который выполняется внутри одного процесса. Потоки позволяют параллельно выполнять несколько задач в рамках одного процесса, что позволяет более эффективно использовать ресурсы. Процесс же — это отдельная программа, которая работает в своем собственном адресном пространстве. Каждый процесс может содержать несколько потоков. Основное различие в том, что потоки разделяют память, а процессы работают в отдельных пространствах памяти.
Рейтинг:
2
Сложность:
6
«Зомби-процесс» в Unix-системах — это дочерний процесс, завершивший выполнение, но не получивший статус от родителя (не вызван wait), и потому остающийся в таблице процессов. Потоки (threads) внутри одного процесса не становятся зомби: они завершаются и освобождают ресурсы сразу. В Android чаще говорят о «утечках» потоков, а не о зомби-процессах.
Рейтинг:
3
Сложность:
8
Рейтинг:
3
Сложность:
8
Рейтинг:
2
Сложность:
6
Рейтинг:
1
Сложность:
6
Рейтинг:
1
Сложность:
7