Изменение порядка модели памяти JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Изменение порядка модели памяти Java

Сообщение Anonymous »

Код: Выделить всё

@JCStressTest
@Outcome(id = "1, 1", expect = Expect.ACCEPTABLE, desc = "ordered")
@Outcome(id = "0, 1", expect = Expect.ACCEPTABLE, desc = "ordered")
@Outcome(id = "1, 0", expect = Expect.ACCEPTABLE, desc = "reordered")
@Outcome(id = "0, 0", expect = Expect.ACCEPTABLE, desc = "ordered")
@State
public class TestJUC {
private int x;

public TestJUC() {}

@Actor
public void actor1() {
x = 1;
}

@Actor
public void actor2(II_Result r) {

1.int a = x;
2.r.r1 = a;

3.int b = x;
4.r.r2 = b;

}
}
После прохождения теста jcstress результата (1,0) не будет. В методе актера 2, чтобы обеспечить последовательный режим, оператор 1 должен быть перед оператором 2, а оператор 3 должен быть перед оператором 4 после переупорядочения.
Возможна следующая ситуация. .
int b = x;
int a = x;
r.r1 = a;
r.r2 = b;
Эта ситуация может привести к (1,0), но после тестирования jctress такого результата не произошло. Почему это?

Подробнее здесь: https://stackoverflow.com/questions/790 ... mory-model
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»