이 시나리오에서는 스레드, 특히 HandlerThread가 test() 메서드 내에서 실행되고 해당 스레드 내에서 값이 수정됩니다. 문제는 추가 처리 또는 사용을 위해 이 수정된 값을 test() 메서드로 다시 반환하는 것입니다.
한 가지 접근 방식은 제공된 코드 조각에서 볼 수 있듯이 Runnable 인터페이스를 구현하는 스레드를 만드는 것입니다. 이 스레드의 run() 메서드 내에서 필요에 따라 값을 설정할 수 있습니다. 또한 getValue() 메서드를 생성하여 이 값을 외부에서 검색할 수 있습니다.
값을 검색하려면 스레드를 시작하고 스레드가 완료될 때까지 기다린 다음(join()을 통해) 값에 액세스할 수 있습니다. getValue() 메소드를 사용합니다.
public class CustomThread implements Runnable {
private volatile int value;
@Override
public void run() {
value = 2;
}
public int getValue() {
return value;
}
}
기본 메소드에서:
CustomThread thread = new CustomThread();
Thread t = new Thread(thread);
t.start();
t.join();
int retrievedValue = thread.getValue();
value와 같은 휘발성 변수를 사용하면 스레드 전체의 가시성과 일관성이 보장된다는 점을 기억하세요.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3