Java에서 스레드와 통신하는 매우 간단한 방법을 찾고 있습니다. 다음 예제를 고려하십시오.Java 스레드와의 간단한 통신
boolean pass=false;
Thread simpleThread=new Thread(){
public void run(){
x=doStuff();
if (x==0) pass=true;
}
}
simpleThread.start();
doStuff()가 0을 반환했는지 알아야합니다. 물론 이것은 Java에서는 합법적이지 않습니다. 그러나 올바르게 구현하려면 어떻게해야합니까? simpleThread로 작성하고 주 스레드가 읽을 수있는 일종의 Object가 필요합니다. 그 누락 된 조각은 무엇입니까?
이것은 정확히 내가 찾고있는 것입니다. 너무 간단합니다.AtomicBoolean이 날 꺼 버렸어! – User1
이 예제에서'AtomicBoolean'의 사용법을 완전히 이해하지 못했습니다. 이 예제는 "비교 및 교환"의미론에 의존하지 않으며, 내 지식은 원자를 사용하는 주요 동기입니다. 전통적인 휘발성 부울을 사용하는 것은 동등해야합니다. – bluenote10
@ bluenote10이 예제는 단순한 불린 홀더로서'AtomicBoolean'을 더 많이 사용하고 있습니다. 휘발성 부울은 모든 선언이 로컬 범위이고 익명 내부 클래스에서 로컬 final에만 액세스 할 수 있기 때문에 여기에서 가능하지 않습니다. –