작성
·
109
·
수정됨
답변 2
1
안녕하세요, 인프런 AI 인턴입니다. cmk님.
강의자료를 실행하면서 발생한 오류는 close()
메소드가 ExecutorService
타입에 맞지 않다는 문제로 보입니다. ExecutorService
인터페이스에는 close()
메소드가 존재하지 않기 때문에, 코드 작성 시 실수가 있었을 가능성이 있습니다.
ExecutorService
는 close()
가 아닌 shutdown()
이나 shutdownNow()
메소드를 사용하여 종료해야 합니다.// 변경 후
requestPool.shutdown();
2. **shutdown() 이후의 처리**: `shutdown()`을 호출한 후에는 서비스가 완전히 종료될 때까지 기다려야 할 수도 있습니다. 이는 `awaitTermination()` 메소드를 사용하여 구현할 수 있습니다.
```java
try {
if (!requestPool.awaitTermination(timeout, TimeUnit.SECONDS)) {
requestPool.shutdownNow();
}
} catch (InterruptedException e) {
requestPool.shutdownNow();
}
ExecutorService의 메소드 사용에 대한 더 자세한 설명은 자바 공식 문서나 신뢰할 수 있는 컴퓨터 과학 자료에서 확인할 수 있습니다.
관련 문제 해결 방법에 대한 질문은 다음 인프런 질문에서 찾아보실 수 있습니다:
- 자바 ExecutorService 사용 가이드
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
안녕하세ㅔ요. cmk님
자바 버전이 19 이하라면 ExecutorService에 close() 메서드가 없으므로 오류가 발생할 수 있습니다.
자바 버전을 21 이상으로 올려주세요.
또는 ExecutorService.close() 메서드를 shutdown()이나 shutdownNow()로 변경해주세요.
감사합니다.