Сопоставление Senior Потоки и Java Memory Model обновлено

Правила happens-before

Вопрос

Сопоставьте действие в потоке A и действие в потоке B, перед которым оно гарантированно видно.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

Это базовые правила JMM. Каждая пара создаёт ребро happens-before, и всё, что поток сделал до левого действия, видно после правого.

Правильные пары

Отпускание монитора M
Последующий захват того же монитора M
Запись в volatile-поле v
Последующее чтение поля v
Вызов t.start()
Первое действие в потоке t
Последнее действие потока t
Возврат из t.join()

Разбор

Это базовые правила JMM. Каждая пара создаёт ребро happens-before, и всё, что поток сделал до левого действия, видно после правого. Действия без такого ребра могут быть видны в любом порядке или не видны вовсе.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме