spring 프로젝트 우아 한 스 레 드 풀 닫 기

1729 단어 spring자바
ThreadPoolExecutor 소개
자바 중앙 선 탱크 의 세 가지 방법 shutdown(), shutdownNow()awaitTermination()shutdown :
  • 스 레 드 탱크 에 새 작업 제출 거부
  • 수행 대기 및 수행 중인 임무 계속 수행
  • shutdownNow
  • 스 레 드 탱크 에 새 작업 제출 거부
  • 대기 열 에서 대기 중인 작업 취소
  • 퀘 스 트 수행 중 취소 시도
  • awaitTermination(long timeOut, TimeUnit unit)
  • 스 레 드 를 막 고 모든 수행 대기 및 실행 중인 작업 수행 완료
  • 또는 시간 초과
  • 또는 스 레 드 가 중단 되 어 중단 이상 을 던 지고 true (shutdown 요청 후 모든 작업 이 완료 되 었 습 니 다) 또는 false (시간 초과)
  • 로 돌아 갑 니 다.
    삼자 의 공통점 과 차이 점:
  • shutdownshutdownNow 이후 모두 임무 제출 을 거절 하고 awaitTermination 임 무 를 계속 제출 할 수 있다.
  • awaitTermination() 은 막 혔 고, 되 돌아 온 결 과 는 스 레 드 탱크 가 멈 췄 는 지 (true / false) shutdown/Now 가 막 히 지 않 았 는 지 여부 입 니 다.
  • shutdown Now 즉시 닫 기
  • shutdown 우아 하 게 닫 기
  • 우아 한 정지
    이상 의 개념 을 알 고 나 면 지금 이 바로 spring 에서 어떤 시기 에 이런 방법 을 호출 하 는 것 입 니까?spring 의 용 기 는 닫 을 때 닫 힌 이 벤트 를 발표 하기 때문에 우 리 는 spring 용기 닫 힌 이 벤트 를 감청 하고 이 벤트 를 받 을 때 우아 하 게 닫 을 수 있 습 니 다.
    spring 의 스 레 드 풀, 즉 @ Async 주 해 를 사용한다 면 설정 에서 우아 하 게 닫 을 수 있 습 니 다.
    executor.setWaitForTasksToCompleteOnShutdown(true);
    executor.setAwaitTerminationSeconds(60)
    

    좋은 웹페이지 즐겨찾기