1
Java에서 스레드를 동기화하는 데 CyclicBarrier를 사용하는 경우 비 휘발성 변수를 동기화합니까? CyclicBarrier에서의 Visibilty 동기화?
int a = 0;
int b = 0;
CyclicBarrier barrier = new CyclicBarrier(2);
/*** Thread 1 ***/
public void run() {
a = 2;
barrier.await();
doSomeStuff(b); // no side-effects
}
/*** Thread 2 ***/
public void run() {
b = 3;
barrier.await();
doSomeStuff(a); // no side-effects
}
우리는 스레드 1의 doSomeStuff 호출 B의 3으로 설정되어 있는지 확인 될 수 있을까? 항상 3의 시도 ...
먼저 Thread2를 호출 하시겠습니까 ?? – Mac
중요합니까? 'Thread t1 = new Thread1(); 스레드 t2 = 새로운 Thread2(); t1.start(); t2.''();' – Explicat
음 ...'t1'이't2' 전에 시작한다는 보장은 없습니다. – Mac