JV Java  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Executor, Future и CompletableFuture

Разбирает тему «Executor, Future и CompletableFuture» на практических сценариях: поиск дефектов, сравнение решений и оценка последствий. Вопросы перемешаны: встречаются трассировка, ошибка компиляции, выбор правки, граничный сценарий и оценка инженерного компромисса. Базовая версия — Java 25 LTS; если версия не названа отдельно, используются устойчивые правила, совместимые с Java 21.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 5 тематическим шкалам и объяснения.
Вопрос 1 из 25
Как точнее оценить пользу и цену решения по теме «Результаты Future» в разделе «Executor, Future и CompletableFuture»?
Вопрос 2 из 25
Какое изменение сделает код по теме «Тестирование и диагностика» в разделе «Executor, Future и CompletableFuture» надёжнее?
JavaТестирование и диагностика · фрагмент для анализа
// Фрагмент на ревью
var f = service.loadAsync();
Thread.sleep(50);
assertEquals("ready", f.join());
Вопрос 3 из 25
Какое правило Java действует для темы «Обработка ошибок» в разделе «Executor, Future и CompletableFuture»?
Вопрос 4 из 25
Какой инженерный компромисс характерен для темы «Пулы потоков» в разделе «Executor, Future и CompletableFuture»?
Вопрос 5 из 25
Какое правило Java действует для темы «Результаты Future» в разделе «Executor, Future и CompletableFuture»?
Вопрос 6 из 25
Какой граничный случай особенно важен для темы «Тестирование и диагностика» в разделе «Executor, Future и CompletableFuture»?
JavaТестирование и диагностика · фрагмент для анализа
// Минимальный пример
var f = service.loadAsync();
Thread.sleep(50);
assertEquals("ready", f.join());
Вопрос 7 из 25
Какое ограничение механизма «Композиция стадий» нельзя упускать при работе с разделом «Executor, Future и CompletableFuture»?
JavaКомпозиция стадий · фрагмент для анализа
// Минимальный пример
java.util.concurrent.CompletableFuture<User> user = findUserAsync(id);
var orders = user.thenApplyAsync(u -> blockingLoadOrders(u.id()));
Вопрос 8 из 25
Какой дополнительный сценарий нужно проверить, чтобы восстановление через exceptionally не скрывало новую ошибку?
JavaОбработка ошибок · фрагмент для анализа
// Минимальный пример
var f = java.util.concurrent.CompletableFuture.<Integer>supplyAsync(() -> {
    throw new IllegalStateException("boom");
}).exceptionally(ex -> 0).thenApply(x -> x + 1);
System.out.println(f.join());
Вопрос 9 из 25
Как поведёт себя фрагмент по теме «Пулы потоков» при разборе раздела «Executor, Future и CompletableFuture»?
JavaПулы потоков · фрагмент для анализа
var pool = java.util.concurrent.Executors.newFixedThreadPool(8);
for (int i = 0; i < 10_000_000; i++) {
    pool.submit(() -> slowRemoteCall());
}
Вопрос 10 из 25
Какое утверждение о механизме «Композиция стадий» верно в контексте раздела «Executor, Future и CompletableFuture»?
Вопрос 11 из 25
Что произойдёт с кодом по теме «Результаты Future» в разделе «Executor, Future и CompletableFuture»?
JavaРезультаты Future · фрагмент для анализа
var future = pool.submit(() -> {
    while (true) { /* interrupt не проверяется */ }
});
future.cancel(true);
Вопрос 12 из 25
Какое ограничение механизма «Результаты Future» нельзя упускать при работе с разделом «Executor, Future и CompletableFuture»?
Вопрос 13 из 25
Какое ограничение механизма «Пулы потоков» нельзя упускать при работе с разделом «Executor, Future и CompletableFuture»?
JavaПулы потоков · фрагмент для анализа
// Минимальный пример
var pool = java.util.concurrent.Executors.newFixedThreadPool(8);
for (int i = 0; i < 10_000_000; i++) {
    pool.submit(() -> slowRemoteCall());
}
Вопрос 14 из 25
Какой инженерный компромисс характерен для темы «Композиция стадий» в разделе «Executor, Future и CompletableFuture»?
Вопрос 15 из 25
Как точнее оценить пользу и цену решения по теме «Обработка ошибок» в разделе «Executor, Future и CompletableFuture»?
Вопрос 16 из 25
Какое правило Java действует для темы «Пулы потоков» в разделе «Executor, Future и CompletableFuture»?
Вопрос 17 из 25
Какое изменение сделает код по теме «Композиция стадий» в разделе «Executor, Future и CompletableFuture» надёжнее?
JavaКомпозиция стадий · фрагмент для анализа
// Фрагмент на ревью
java.util.concurrent.CompletableFuture<User> user = findUserAsync(id);
var nested = user.thenApply(u -> loadOrdersAsync(u.id()));
Вопрос 18 из 25
Какой контракт языка или библиотеки точнее всего описывает тему «Тестирование и диагностика» в разделе «Executor, Future и CompletableFuture»?
Вопрос 19 из 25
Как поведёт себя фрагмент по теме «Композиция стадий» при разборе раздела «Executor, Future и CompletableFuture»?
JavaКомпозиция стадий · фрагмент для анализа
java.util.concurrent.CompletableFuture<User> user = findUserAsync(id);
var nested = user.thenApply(u -> loadOrdersAsync(u.id()));
Вопрос 20 из 25
Какой диагноз для кода по теме «Обработка ошибок» в разделе «Executor, Future и CompletableFuture» будет точным?
JavaОбработка ошибок · фрагмент для анализа
var f = java.util.concurrent.CompletableFuture.<Integer>supplyAsync(() -> {
    throw new IllegalStateException("boom");
}).exceptionally(ex -> 0).thenApply(x -> x + 1);
System.out.println(f.join());
Вопрос 21 из 25
Какая правка точнее всего устраняет причину проблемы по теме «Обработка ошибок» в разделе «Executor, Future и CompletableFuture»?
JavaОбработка ошибок · фрагмент для анализа
// Фрагмент на ревью
var f = java.util.concurrent.CompletableFuture.<Integer>supplyAsync(() -> {
    throw new IllegalStateException("boom");
}).exceptionally(ex -> 0).thenApply(x -> x + 1);
System.out.println(f.join());
Вопрос 22 из 25
Какая правка точнее всего устраняет причину проблемы по теме «Пулы потоков» в разделе «Executor, Future и CompletableFuture»?
JavaПулы потоков · фрагмент для анализа
// Фрагмент на ревью
var pool = java.util.concurrent.Executors.newFixedThreadPool(8);
for (int i = 0; i < 10_000_000; i++) {
    pool.submit(() -> slowRemoteCall());
}
Вопрос 23 из 25
Как лучше исправить или прояснить поведение темы «Результаты Future» в разделе «Executor, Future и CompletableFuture»?
JavaРезультаты Future · фрагмент для анализа
// Фрагмент на ревью
var future = pool.submit(() -> {
    while (true) { /* interrupt не проверяется */ }
});
future.cancel(true);
Вопрос 24 из 25
Почему такой асинхронный тест остаётся ненадёжным?
JavaТестирование и диагностика · фрагмент для анализа
var f = java.util.concurrent.CompletableFuture.supplyAsync(service::load);
Thread.sleep(50);
assertTrue(f.isDone());
Вопрос 25 из 25
Как точнее оценить пользу и цену решения по теме «Тестирование и диагностика» в разделе «Executor, Future и CompletableFuture»?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу