Непротиворечивость памяти - отношения «происходит раньше» в Java [дубликаты]

На этот вопрос уже есть ответ здесь:

Как понять, что происходит, прежде чем последовательно 4 ответа

При чтении документов Java на ошибки согласованности памяти. Я нахожу точки, связанные с двумя действиями, которые возникают - до отношений:

Когда заявление вызываетThread.start()каждый оператор, имеющий отношение «до операции» с этим оператором, также имеет отношение «до операции» с каждым оператором, выполняемым новым потоком. Эффекты кода, которые привели к созданию нового потока, видны новому потоку.

Когда поток завершается и вызываетThread.join() в другом потоке для возврата, тогда все операторы выполняются прерванными
Поток имеет отношение «происходит до» со всеми операторами
после успешного присоединения. Эффекты кода в потоке теперь видны потоку, который выполнил соединение.

Я не могу понять их значение. Было бы здорово, если бы кто-то объяснил это простым примером.