• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

java 8과 11에서 thread 차이점이 있어 질문드립니다

20.07.05 23:49 작성 조회수 415

0

안녕하세요 선생님, 강의 너무 잘 듣고 있습니다.

강의 내용 중에 궁금한 점이 있어 질문 드립니다.

강의 중에 아래와 같은 코드를 실행하게 되면

자바 8에서의 결과

자바 11에서의 결과

이렇게 callback함수가 수행되는 thread가 다른 점을 알 수 있는데요.
자바 8에서 11로 오면서 바뀐 부분인 것 같은데 관련된 설명을 찾을 수 없어 이렇게 질문드립니다~

답변 2

·

답변을 작성해보세요.

3

thenRun() 관련해서 자바 8과 11에서 달라진건 없습니다. 아마 여러번 실행해 보시면 어떨 때는 main에서 실행하고 어떨 때는 supplyAsync()를 실행한거랑 같은 쓰레드에서 실행하고 그럴거에요. 

thenRun()으로 전달한 콜백은 앞선 콜백을 실행한 쓰레드나 그 쓰레드를 파생시킨 부모에서 실행하게 되어있고 바뀐건 없습니다. 부모 쓰레드나 이전 콜백을 실행한 쓰레드가 아닌 쓰레드로 실행하고 싶다면 thenRunAsync를 사용해야 합니다.

0

답변 감사드립니다~