작성
·
173
0
안녕하세요. 비동기 작업 조합 강의 38분 30초대를 듣다가 질문이 생겼습니다.
인텔리제이 콘솔에 '최종 결과: 10'으로 출력되고 있는데요.
궁금한 점은 아래와 같습니다.
비동기 처리 과정이 제일 적은 cf1의 리턴 값은 10이다
AnyOfExample.java 19 Line에서는 result * 10으로 계산이 되고 있다.
따라서 100이 나올 것으로 예상을 했는데 10으로 출력되는 것으로 보아 2번 계산 과정을 스레드가 실행하지 않은 건가 싶어서요.
혹시 제가 놓치고 있는 부분이 있나 해서 질문드립니다.
답변 2
0
네
보시면 finalCf.join() 으로 최종결과를 출력하고 있는데 가장 빨리 완료한 0.5 초 작업의 결과인 10 이 출력되고 있습니다.
result * 10 을 계산 된 결과는 finalCf 가 아닌 finalCf.thenApply() 를 통해 실행된 결과인데 그 부분은 출력하지 않고 있습니다.
즉
finalCf2 = finalCf.thenApply()
System.out.println(finalCf2.join())
이렇게 하면 100 의 결과를 얻을 수 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용과 관련하여 강사님이 답변하신 유사한 내용이 있어 링크를 공유드립니다. 강의를 듣는 중 궁금한 부분이 있으시다면 해당 질문의 답변을 참고하시면 도움이 되실 것 같습니다.
위 링크를 클릭하시면 강사님의 답변을 확인하실 수 있습니다. 추가로 궁금한 점이 있다면, 같은 페이지 내에서 추가 질문을 올리실 수도 있습니다.