Специализация
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 в телеграм
Можно ли использовать concurrent.futures.ThreadPoolExecutor в FastAPI эндпоинте? Это опасно?
Использование ThreadPoolExecutor в FastAPI возможно, но требует осторожности, так как это может повлиять на производительность и масштабируемость приложения.
Какие проблемы может вызвать Executors.newCachedThreadPool()? Когда его уместно применять?
newCachedThreadPool() создает потоки по требованию и убирает неиспользуемые через 60 секунд. Опасен неограниченным ростом потоков при высокой нагрузке, что приводит к исчерпанию памяти или CPU. Уместен только для редких коротких задач.
Стандартные способы управления потоками (ExecutorService, Future)
ExecutorService - пул потоков для выполнения задач.Future - результат асинхронной операции, позволяет:
Проверить готовность
Получить результат
Отменить выполнение
Что такое ExecutorService?
ExecutorService — это интерфейс для управления выполнением задач в пуле потоков.
Он отделяет постановку задачи от ее выполнения.
ExecutorService сам управляет потоками и очередями.
Это делает код проще и безопаснее.
Какие типы ExecutorService ты знаешь?
В Java есть несколько стандартных реализаций ExecutorService.
Они отличаются количеством потоков и стратегией выполнения задач.
Каждый тип подходит под свой сценарий нагрузки.
Неправильный выбор пула может привести к проблемам производительности.
Для чего используется ScheduledThreadPoolExecutor?
Какие способы запуска задач через ExecutorService существуют?
Как контролировать размер очереди задач в ExecutorService?
Рейтинг:
4
Сложность:
5
ScheduledThreadPoolExecutor используется для выполнения задач по расписанию. Он позволяет запускать задачи с задержкой или периодически. В отличие от простых таймеров, он поддерживает пул потоков. Это делает его более надёжным и масштабируемым. Часто используется как основа для планировщиков.
Рейтинг:
5
Сложность:
5
ExecutorService позволяет запускать задачи через execute, submit и методы пакетного выполнения. execute не возвращает результат. submit возвращает Future. Также есть методы для запуска нескольких задач одновременно. Выбор способа зависит от необходимости результата и обработки ошибок.
Рейтинг:
5
Сложность:
7
Размер очереди контролируется через конкретную реализацию BlockingQueue.
Стандартные фабрики Executors этого не позволяют.
Нужно использовать ThreadPoolExecutor.
Ограниченная очередь предотвращает перегрузку памяти.
Также важно настроить стратегию обработки переполнения.
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
5
Рейтинг:
1
Сложность:
7
Рейтинг:
5
Сложность:
6
Рейтинг:
4
Сложность:
6