JV Java  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Виртуальные потоки

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

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 6 тематическим шкалам и объяснения.
Вопрос 1 из 30
Какой граничный случай особенно важен для темы «Закрепление виртуальных потоков» в разделе «Виртуальные потоки»?
JavaЗакрепление виртуальных потоков · фрагмент для анализа
// Минимальный пример
synchronized (monitor) {
    result = blockingOperation();
}
Вопрос 2 из 30
Как лучше исправить или прояснить поведение темы «Выбор архитектуры» в разделе «Виртуальные потоки»?
JavaВыбор архитектуры · фрагмент для анализа
// Фрагмент на ревью
try (var ex = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    for (var image : images) ex.submit(() -> render4k(image));
}
Вопрос 3 из 30
Какой контракт языка или библиотеки точнее всего описывает тему «Производительность и эксплуатация» в разделе «Виртуальные потоки»?
Вопрос 4 из 30
Какой контракт языка или библиотеки точнее всего описывает тему «Блокирующий ввод-вывод» в разделе «Виртуальные потоки»?
Вопрос 5 из 30
Как поведёт себя фрагмент по теме «Тестирование и диагностика» при разборе раздела «Виртуальные потоки»?
JavaТестирование и диагностика · фрагмент для анализа
try (var ex = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    var tasks = java.util.stream.IntStream.range(0, 50_000)
        .mapToObj(i -> ex.submit(() -> dataSource.getConnection()))
        .toList();
}
Вопрос 6 из 30
Что следует изменить в разделе «Виртуальные потоки», чтобы сохранить замысел и соблюсти контракт «Закрепление виртуальных потоков»?
JavaЗакрепление виртуальных потоков · фрагмент для анализа
// Фрагмент на ревью
synchronized (monitor) {
    result = blockingOperation();
}
Вопрос 7 из 30
Что произойдёт с кодом по теме «Модель выполнения» в разделе «Виртуальные потоки»?
JavaМодель выполнения · фрагмент для анализа
try (var executor = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    for (int i = 0; i < 100_000; i++)
        executor.submit(() -> callRemoteService());
}
Вопрос 8 из 30
Какой вывод о synchronized верен для виртуальных потоков в Java 25?
JavaЗакрепление виртуальных потоков · фрагмент для анализа
synchronized (monitor) {
    result = blockingOperation();
}
Вопрос 9 из 30
Как точнее оценить пользу и цену решения по теме «Закрепление виртуальных потоков» в разделе «Виртуальные потоки»?
Вопрос 10 из 30
Какой контракт языка или библиотеки точнее всего описывает тему «Выбор архитектуры» в разделе «Виртуальные потоки»?
Вопрос 11 из 30
Как поведёт себя фрагмент по теме «Производительность и эксплуатация» при разборе раздела «Виртуальные потоки»?
JavaПроизводительность и эксплуатация · фрагмент для анализа
class BufferTask {
    static final ThreadLocal<byte[]> BUFFER =
        ThreadLocal.withInitial(() -> new byte[1_000_000]);
    static void use() { System.out.println(BUFFER.get().length); }
}
for (int i = 0; i < 50_000; i++) Thread.startVirtualThread(BufferTask::use);
Вопрос 12 из 30
Какая правка точнее всего устраняет причину проблемы по теме «Производительность и эксплуатация» в разделе «Виртуальные потоки»?
JavaПроизводительность и эксплуатация · фрагмент для анализа
// Фрагмент на ревью
class BufferTask {
    static final ThreadLocal<byte[]> BUFFER =
        ThreadLocal.withInitial(() -> new byte[1_000_000]);
    static void use() { System.out.println(BUFFER.get().length); }
}
for (int i = 0; i < 50_000; i++) Thread.startVirtualThread(BufferTask::use);
Вопрос 13 из 30
Какое ограничение механизма «Выбор архитектуры» нельзя упускать при работе с разделом «Виртуальные потоки»?
JavaВыбор архитектуры · фрагмент для анализа
// Минимальный пример
try (var ex = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    for (var image : images) ex.submit(() -> render4k(image));
}
Вопрос 14 из 30
Какое правило Java действует для темы «Модель выполнения» в разделе «Виртуальные потоки»?
Вопрос 15 из 30
Какое ограничение механизма «Модель выполнения» нельзя упускать при работе с разделом «Виртуальные потоки»?
JavaМодель выполнения · фрагмент для анализа
// Минимальный пример
try (var executor = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    for (int i = 0; i < 100_000; i++)
        executor.submit(() -> callRemoteService());
}
Вопрос 16 из 30
Как лучше исправить или прояснить поведение темы «Тестирование и диагностика» в разделе «Виртуальные потоки»?
JavaТестирование и диагностика · фрагмент для анализа
// Фрагмент на ревью
try (var ex = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    var tasks = java.util.stream.IntStream.range(0, 50_000)
        .mapToObj(i -> ex.submit(() -> dataSource.getConnection()))
        .toList();
}
Вопрос 17 из 30
В каком дополнительном сценарии вывод о теме «Блокирующий ввод-вывод» в разделе «Виртуальные потоки» может оказаться неверным?
JavaБлокирующий ввод-вывод · фрагмент для анализа
Thread.startVirtualThread(() -> {
    var body = java.net.http.HttpClient.newHttpClient().send(
        request, java.net.http.HttpResponse.BodyHandlers.ofString());
    save(body.body());
// ...
Вопрос 18 из 30
Какой инженерный компромисс характерен для темы «Производительность и эксплуатация» в разделе «Виртуальные потоки»?
Вопрос 19 из 30
Какой архитектурный вывод точнее всего относится к показанной нагрузке?
JavaВыбор архитектуры · фрагмент для анализа
// images содержит 1_000_000 элементов; render4k выполняет тяжёлые вычисления на процессоре
try (var ex = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    for (var image : images) ex.submit(() -> render4k(image));
}
Вопрос 20 из 30
Какое изменение сделает код по теме «Модель выполнения» в разделе «Виртуальные потоки» надёжнее?
JavaМодель выполнения · фрагмент для анализа
// Фрагмент на ревью
try (var executor = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    for (int i = 0; i < 100_000; i++)
        executor.submit(() -> callRemoteService());
}
Вопрос 21 из 30
Какой диагноз для кода по теме «Блокирующий ввод-вывод» в разделе «Виртуальные потоки» будет точным?
JavaБлокирующий ввод-вывод · фрагмент для анализа
Thread.startVirtualThread(() -> {
    var body = java.net.http.HttpClient.newHttpClient().send(
        request, java.net.http.HttpResponse.BodyHandlers.ofString());
    save(body.body());
});
Вопрос 22 из 30
Какой граничный случай особенно важен для темы «Производительность и эксплуатация» в разделе «Виртуальные потоки»?
JavaПроизводительность и эксплуатация · фрагмент для анализа
// ...
    static void use() { System.out.println(BUFFER.get().length); }
}
for (int i = 0; i < 50_000; i++) Thread.startVirtualThread(BufferTask::use);
Вопрос 23 из 30
В каком дополнительном сценарии вывод о теме «Тестирование и диагностика» в разделе «Виртуальные потоки» может оказаться неверным?
JavaТестирование и диагностика · фрагмент для анализа
try (var ex = java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor()) {
    var tasks = java.util.stream.IntStream.range(0, 50_000)
        .mapToObj(i -> ex.submit(() -> dataSource.getConnection()))
        .toList();
}
Вопрос 24 из 30
Какое замечание о сопровождении или производительности темы «Выбор архитектуры» в разделе «Виртуальные потоки» справедливо?
Вопрос 25 из 30
Какой инженерный компромисс характерен для темы «Тестирование и диагностика» в разделе «Виртуальные потоки»?
Вопрос 26 из 30
Какой инженерный компромисс характерен для темы «Блокирующий ввод-вывод» в разделе «Виртуальные потоки»?
Вопрос 27 из 30
Что важно учитывать при применении механизма «Модель выполнения» из раздела «Виртуальные потоки» в рабочем проекте?
Вопрос 28 из 30
На какое правило следует опираться при разборе темы «Закрепление виртуальных потоков» в разделе «Виртуальные потоки»?
Вопрос 29 из 30
Какое изменение сделает код по теме «Блокирующий ввод-вывод» в разделе «Виртуальные потоки» надёжнее?
JavaБлокирующий ввод-вывод · фрагмент для анализа
// Фрагмент на ревью
Thread.startVirtualThread(() -> {
    var body = java.net.http.HttpClient.newHttpClient().send(
        request, java.net.http.HttpResponse.BodyHandlers.ofString());
    save(body.body());
});
Вопрос 30 из 30
Какое утверждение о механизме «Тестирование и диагностика» верно в контексте раздела «Виртуальные потоки»?

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

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

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

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