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

Потоки выполнения и синхронизация

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

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 5 тематическим шкалам и объяснения.
Вопрос 1 из 25
Какой инженерный компромисс характерен для темы «Тестирование и диагностика» в разделе «Потоки выполнения и синхронизация»?
Вопрос 2 из 25
Какое ограничение механизма «Видимость данных» нельзя упускать при работе с разделом «Потоки выполнения и синхронизация»?
Вопрос 3 из 25
На какое правило следует опираться при разборе темы «Мониторы synchronized» в разделе «Потоки выполнения и синхронизация»?
Вопрос 4 из 25
Какое утверждение о механизме «Видимость данных» верно в контексте раздела «Потоки выполнения и синхронизация»?
Вопрос 5 из 25
Какой диагноз для кода по теме «Состояния гонки» в разделе «Потоки выполнения и синхронизация» будет точным?
JavaСостояния гонки · фрагмент для анализа
class Counter { int value; void inc() { value++; } }
var c = new Counter();
// два потока вызывают c.inc() по миллиону раз
Вопрос 6 из 25
Что важно учитывать при применении механизма «Состояния гонки» из раздела «Потоки выполнения и синхронизация» в рабочем проекте?
Вопрос 7 из 25
Что важно учитывать при применении механизма «Видимость данных» из раздела «Потоки выполнения и синхронизация» в рабочем проекте?
Вопрос 8 из 25
В каком дополнительном сценарии вывод о теме «Потоки Thread» в разделе «Потоки выполнения и синхронизация» может оказаться неверным?
JavaПотоки Thread · фрагмент для анализа
// Минимальный пример
var t = new Thread(() ->
    System.out.println(Thread.currentThread().getName()));
t.run();
Вопрос 9 из 25
Какая правка точнее всего устраняет причину проблемы по теме «Видимость данных» в разделе «Потоки выполнения и синхронизация»?
JavaВидимость данных · фрагмент для анализа
// Фрагмент на ревью
class Worker {
    boolean stop;
    void run() { while (!stop) { doWork(); } }
    void shutdown() { stop = true; }
}
Вопрос 10 из 25
Какое правило Java действует для темы «Состояния гонки» в разделе «Потоки выполнения и синхронизация»?
Вопрос 11 из 25
В каком дополнительном сценарии вывод о теме «Тестирование и диагностика» в разделе «Потоки выполнения и синхронизация» может оказаться неверным?
JavaТестирование и диагностика · фрагмент для анализа
// ...
new Thread(() -> result.add(2)).start();
Thread.sleep(10);
System.out.println(result.size());
Вопрос 12 из 25
Что произойдёт с кодом по теме «Мониторы synchronized» в разделе «Потоки выполнения и синхронизация»?
JavaМониторы synchronized · фрагмент для анализа
class Counter {
    static int value;
    synchronized void inc() { value++; }
}
var a = new Counter();
var b = new Counter();
var t1 = new Thread(() -> { for (int i = 0; i < 100_000; i++) a.inc(); });
var t2 = new Thread(() -> { for (int i = 0; i < 100_000; i++) b.inc(); });
t1.start(); t2.start(); t1.join(); t2.join();
System.out.println(Counter.value);
Вопрос 13 из 25
Что произойдёт с кодом по теме «Тестирование и диагностика» в разделе «Потоки выполнения и синхронизация»?
JavaТестирование и диагностика · фрагмент для анализа
var result = new java.util.ArrayList<Integer>();
new Thread(() -> result.add(1)).start();
new Thread(() -> result.add(2)).start();
Thread.sleep(10);
System.out.println(result.size());
Вопрос 14 из 25
Какое изменение сделает код по теме «Потоки Thread» в разделе «Потоки выполнения и синхронизация» надёжнее?
JavaПотоки Thread · фрагмент для анализа
// Фрагмент на ревью
var t = new Thread(() ->
    System.out.println(Thread.currentThread().getName()));
t.run();
Вопрос 15 из 25
Какое замечание о сопровождении или производительности темы «Мониторы synchronized» в разделе «Потоки выполнения и синхронизация» справедливо?
Вопрос 16 из 25
Что следует изменить в разделе «Потоки выполнения и синхронизация», чтобы сохранить замысел и соблюсти контракт «Состояния гонки»?
JavaСостояния гонки · фрагмент для анализа
// Фрагмент на ревью
class Counter { int value; void inc() { value++; } }
var c = new Counter();
// два потока вызывают c.inc() по миллиону раз
Вопрос 17 из 25
Какой диагноз для кода по теме «Видимость данных» в разделе «Потоки выполнения и синхронизация» будет точным?
JavaВидимость данных · фрагмент для анализа
class Worker {
    boolean stop;
    void run() { while (!stop) { doWork(); } }
    void shutdown() { stop = true; }
}
Вопрос 18 из 25
Что произойдёт с кодом по теме «Потоки Thread» в разделе «Потоки выполнения и синхронизация»?
JavaПотоки Thread · фрагмент для анализа
var t = new Thread(() ->
    System.out.println(Thread.currentThread().getName()));
t.run();
Вопрос 19 из 25
Что нужно отдельно проверить на границе контракта «Состояния гонки» в разделе «Потоки выполнения и синхронизация»?
JavaСостояния гонки · фрагмент для анализа
// Минимальный пример
class Counter { int value; void inc() { value++; } }
var c = new Counter();
// два потока вызывают c.inc() по миллиону раз
Вопрос 20 из 25
Какая правка точнее всего устраняет причину проблемы по теме «Мониторы synchronized» в разделе «Потоки выполнения и синхронизация»?
JavaМониторы synchronized · фрагмент для анализа
// Фрагмент на ревью
class Counter {
    static int value;
    synchronized void inc() { value++; }
}
var a = new Counter();
var b = new Counter();
var t1 = new Thread(() -> { for (int i = 0; i < 100_000; i++) a.inc(); });
var t2 = new Thread(() -> { for (int i = 0; i < 100_000; i++) b.inc(); });
t1.start(); t2.start(); t1.join(); t2.join();
System.out.println(Counter.value);
Вопрос 21 из 25
Какое замечание о сопровождении или производительности темы «Потоки Thread» в разделе «Потоки выполнения и синхронизация» справедливо?
Вопрос 22 из 25
Какое утверждение о механизме «Потоки Thread» верно в контексте раздела «Потоки выполнения и синхронизация»?
Вопрос 23 из 25
Что нужно отдельно проверить на границе контракта «Мониторы synchronized» в разделе «Потоки выполнения и синхронизация»?
JavaМониторы synchronized · фрагмент для анализа
// ...
var t2 = new Thread(() -> { for (int i = 0; i < 100_000; i++) b.inc(); });
t1.start(); t2.start(); t1.join(); t2.join();
System.out.println(Counter.value);
Вопрос 24 из 25
Что следует изменить в разделе «Потоки выполнения и синхронизация», чтобы сохранить замысел и соблюсти контракт «Тестирование и диагностика»?
JavaТестирование и диагностика · фрагмент для анализа
// Фрагмент на ревью
var result = new java.util.ArrayList<Integer>();
new Thread(() -> result.add(1)).start();
new Thread(() -> result.add(2)).start();
Thread.sleep(10);
System.out.println(result.size());
Вопрос 25 из 25
Какое правило Java действует для темы «Тестирование и диагностика» в разделе «Потоки выполнения и синхронизация»?

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

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

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

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