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