Непротиворечивость памяти - отношения «происходит раньше» в Java [дубликаты]
На этот вопрос уже есть ответ здесь:
Как понять, что происходит, прежде чем последовательно 4 ответаПри чтении документов Java на ошибки согласованности памяти. Я нахожу точки, связанные с двумя действиями, которые возникают - до отношений:
Когда заявление вызываетThread.start()
каждый оператор, имеющий отношение «до операции» с этим оператором, также имеет отношение «до операции» с каждым оператором, выполняемым новым потоком. Эффекты кода, которые привели к созданию нового потока, видны новому потоку.
Когда поток завершается и вызываетThread.join()
в другом потоке для возврата, тогда все операторы выполняются прерванными
Поток имеет отношение «происходит до» со всеми операторами
после успешного присоединения. Эффекты кода в потоке теперь видны потоку, который выполнил соединение.
Я не могу понять их значение. Было бы здорово, если бы кто-то объяснил это простым примером.