Специализация
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 возможно, но требует осторожности, так как это может повлиять на производительность и масштабируемость приложения.
Что такое eager execution в TensorFlow и какие у него преимущества?
Eager execution в TensorFlow — это режим выполнения, при котором операции выполняются немедленно по мере их вызова в Python. Это упрощает отладку, делает интерфейс более интуитивным и позволяет использовать стандартный контроль потока Python вместо графового контроля, что особенно полезно при создании динамических моделей.
Объясните механизм deferred execution (отложенного выполнения) в LINQ на примере First() и счётчика.
Deferred execution означает, что LINQ-запрос не исполняется при его описании, а только при переборе или вызове терминального оператора (ToList(), First()). Например, var q = data.Where(x=>++counter>0); не увеличит counter пока вы не вызовете q.First() или не переберёте q, тогда counter станет 1 при первом удовлетворяющем элементе.
Какие проблемы может вызвать Executors.newCachedThreadPool()? Когда его уместно применять?
newCachedThreadPool() создает потоки по требованию и убирает неиспользуемые через 60 секунд. Опасен неограниченным ростом потоков при высокой нагрузке, что приводит к исчерпанию памяти или CPU. Уместен только для редких коротких задач.
Стандартные способы управления потоками (ExecutorService, Future)
ExecutorService - пул потоков для выполнения задач.Future - результат асинхронной операции, позволяет:
Проверить готовность
Получить результат
Отменить выполнение
Что такое ExecutorService?
Какие типы ExecutorService ты знаешь?
Для чего используется ScheduledThreadPoolExecutor?
Какие способы запуска задач через ExecutorService существуют?
Как контролировать размер очереди задач в ExecutorService?
Рейтинг:
5
Сложность:
6
ExecutorService — это интерфейс для управления выполнением задач в пуле потоков.
Он отделяет постановку задачи от ее выполнения.
ExecutorService сам управляет потоками и очередями.
Это делает код проще и безопаснее.
Рейтинг:
4
Сложность:
6
В Java есть несколько стандартных реализаций ExecutorService.
Они отличаются количеством потоков и стратегией выполнения задач.
Каждый тип подходит под свой сценарий нагрузки.
Неправильный выбор пула может привести к проблемам производительности.
Рейтинг:
4
Сложность:
5
ScheduledThreadPoolExecutor используется для выполнения задач по расписанию. Он позволяет запускать задачи с задержкой или периодически. В отличие от простых таймеров, он поддерживает пул потоков. Это делает его более надёжным и масштабируемым. Часто используется как основа для планировщиков.
Рейтинг:
5
Сложность:
5
ExecutorService позволяет запускать задачи через execute, submit и методы пакетного выполнения. execute не возвращает результат. submit возвращает Future. Также есть методы для запуска нескольких задач одновременно. Выбор способа зависит от необходимости результата и обработки ошибок.
Рейтинг:
5
Сложность:
7
Размер очереди контролируется через конкретную реализацию BlockingQueue.
Стандартные фабрики Executors этого не позволяют.
Нужно использовать ThreadPoolExecutor.
Ограниченная очередь предотвращает перегрузку памяти.
Также важно настроить стратегию обработки переполнения.
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
5
Рейтинг:
1
Сложность:
7