1. shutdown() 메서드는 스레드 풀을 안전하게 종료하는 방법입니다. 종료 메서드를 호출한 후 스레드 풀을 즉시 종료하지 않고 스레드 풀에서 많은 작업을 실행하거나 작업이 완료될 때까지 기다립니다. 스레드 풀
2 및 isShutdown() 메소드는 스레드 풀이 종료되기 시작했는지 여부를 확인할 수 있지만 종료 여부는 확인할 수 없습니다. 완전히 종료되었습니다.
3. isterminating() 메서드는 스레드 풀이 완전히 닫혔는지 확인할 수 있습니다. 따라서 shutdown을 호출한 후 작업을 실행할 때 isshutdown을 호출하면 true를 반환하고 isterminate를 호출하면 false를 반환합니다.
awaittermination 메서드는 스레드 풀이 완전히 닫혔는지 확인하는 것으로, isterminating과 유사하지만 대기 시간을 허용합니다. 이 메서드를 호출하면 다음과 같은 상황이 발생할 수 있습니다
(1) 대기 기간(대기 상태 진입 포함) 동안 스레드 풀이 닫히고 제출된 모든 작업(실행 중인 작업 및 대기열에서 대기 중인 작업 포함)이 완료됩니다. 이는 스레드 풀의 끝과 동일하며 메서드는 true를 반환합니다
(2) 대기 시간 초과 후에도 초기 스레드 풀은 종료되지 않고 메서드는 false로 반환됩니다
(3) 스레드는 도중에 중단됩니다. 대기 기간이 지나면 메서드에서 인터넷 예외가 발생합니다.
shutdownNow: 스레드 풀을 즉시 종료하고 먼저 스레드 풀의 스레드에 인터럽트 신호를 보내고 스레드를 중단한 다음 대기열에 대기 중인 작업을 호출자에게 반환합니다. 호출자는 이러한 작업을 해결할 수 있습니다. .
따라서 비즈니스 요구 사항에 따라 스레드 풀을 중지하는 적절한 방법을 선택할 수 있습니다. 예를 들어 일반적으로 shutdown() 메서드를 사용하여 제출된 작업을 종료하고 완료할 수 있지만, 상황이 긴급한 경우 shutdownnow 메서드를 사용하여 스레드 풀 종료 속도를 높일 수 있습니다.
위 내용은 Java 스레드 풀을 닫는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!