Como entender acontece antes de consistente

EmCapítulo 17 da JLS, introduz um conceito: acontece antes consistente.

Um conjunto de ações A ocorre - antes consistente se para todas as leituras r em A, onde W (r) é a ação de escrita vista por r, não é o caso de que hb (r, W (r)) ou que existe uma escrita w em A tal que wv = rv e hb (W (r), w) e hb (w, r) "

No meu entendimento, é igual a seguir as palavras: ..., é o caso que nem ... nem ...

Então minhas duas primeiras perguntas são:

meu entendimento é certo?o que significa "w.v = r.v"?

Também dá um Exemplo: 17.4.5-1

Thread 1 Thread 2

B = 1; A = 2; 

r2 = A; r1 = B; 

Na primeira ordem de execução:

1: B = 1;

3: A = 2;

2: r2 = A;  // sees initial write of 0

4: r1 = B;  // sees initial write of 0

A ordem em si já nos disse que dois threads são executados alternadamente, então minha terceira pergunta é: o que o número esquerdo significa?

No meu entendimento, a razão de ambos r2 e r1 pode ver que a gravação inicial de 0 é A e B não são campos voláteis. Então, minha quarta pergunta é: se meu entendimento está correto?

Na segunda ordem de execução:

1: r2 = A;  // sees write of A = 2

3: r1 = B;  // sees write of B = 1

2: B = 1;

4: A = 2;

De acordo com a definição de acontece antes da consistência, não é difícil entender que essa ordem de execução acontece antes de ser consistente (se meu primeiro entendimento estiver correto). Então, minhas quintas e sextas questões são: existe esta situação (lê, veja as gravações que ocorrem depois) no mundo real? Se isso acontecer, você poderia me dar um exemplo real?

questionAnswers(4)

yourAnswerToTheQuestion