내 클래스에서 일부 비동기 처리 및 상위 클래스의 값 설정을 수행하는 내부 클래스가 있습니다. 예 : 나는이 문제를 어떻게합니까간단한 멀티 스레딩 java
class Runner{
public static void main(String[] args){
Myclass instance = new Myclass();
//This is always null because runner class doesn't wait for Inner class to
//complete asynchronous processing and to set test value
System.out.println(instance.getTestValueFromMyClass());
}
}
:
class Myclass{
String test;
public getTestValueFromMyClass(){
//this starts asynchronous processing on my inner class
}
//inner class
class InnerClass extends TimerTask{
//doing something asynchronously, when this process is done
test = "somevalue";
}
}
여기에서 지금은 러너 클래스의 문제인가?
아무 것도 동시에 수행하지 않는 것처럼 보이므로 하나의 스레드 만 사용하게됩니다. 비동기 작업을 기다리고 싶다면 ExecutorService와 Future.get()을 사용하는 것이 좋습니다. –
컴파일 할 것 같지 않습니다. –
예 비동기 작업이 완료 될 때까지 기다렸다가 그 결과를 출력하려고했지만, 어떻게하면 –