자바 에서 Executor 인터페이스 용법 총화

1674 단어
이 글 의 사례 는 자바 에서 Executor 인터페이스 용법 을 서술 하 였 다.모두 에 게 참고 하도록 공유 하 다.구체 적 으로 다음 과 같다.
1. 자바 의 Executor 인터페이스 정의

public interface Executor {
  void execute(Runnable command);
}


2. Executors 아래 정적 공장 방법 으로 스 레 드 탱크 를 만 듭 니 다.
a) new Fixed ThreadPool: 일정한 스 레 드 풀 을 만 듭 니 다.최대 스 레 드 수 에 도달 한 후 스 레 드 수 는 더 이상 증가 하지 않 습 니 다.
예상 치 못 한 Exception 으로 스 레 드 가 끝나 면 스 레 드 풀 은 새로운 스 레 드 를 보충 합 니 다.
b) new CachedThreadPool: 캐 시 가능 한 스 레 드 풀 을 만 듭 니 다.풀 길이 가 처리 수 요 를 초과 할 때 남 은 스 레 드 를 회수 할 수 있 습 니 다.
c) new Single ThreadPool: 단일 스 레 드 executor 를 만 듭 니 다.
d) new Scheduled ThreadPool: 일정한 스 레 드 풀 을 만 들 고 시간 적 이 고 주기 적 인 작업 수행 을 지원 합 니 다.
Timer 와 유사 합 니 다.그러나 타 이 머 는 절대적 인 시간 을 바탕 으로 시스템 시계의 변화 에 민감 하고 Scheduled Thread PoolExecutor 는 상대 적 인 시간 만 지원 합 니 다.
3. Timer 류 의 응용 총화 비교
1) Timer 는 모든 timer 작업 을 수행 할 수 있 는 유일한 스 레 드 를 만 드 는 것 입 니 다.한 작업 이 시간 을 초과 하면 다른 Timer Task 시간의 정확성 에 문제 가 생 길 수 있 습 니 다.
2) Timer Task 가 uncheck 이상 을 던 지면 Timer 는 예측 할 수 없 는 행동 을 할 수 있 습 니 다.따라서 Scheduled Thread PoolExecutor 는 타 이 머 를 완전히 대체 할 수 있다.
3) 실행 서비스의 생명주기 문 제 를 해결 하기 위해 ExecutorService 인터페이스 가 Executor 를 확장 했다.스 레 드 탱크 는 세 가지 상 태 를 포함 합 니 다: running, shutting down, terminated.
4. Callable 과 Future
Runnable 은 반환 값 이 없고 checked 이상 을 던 질 수 없 기 때문에 Callable 은 더욱 좋 은 추상 입 니 다.(Callable 은 반환 값 이 없 는 작업 을 표시 합 니 다).Future 는 작업 의 생명 주 기 를 설명 하고 관련 방법 을 제공 하여 작업 의 결 과 를 얻 고 작업 을 취소 하 며 작업 의 완성 또는 취소 여 부 를 검사 합 니 다.
5. Complete Service 는 Executor 와 BlockingQueue 의 기능 을 통합 시 켰 다.
take 와 poll 은 완 료 된 작업 을 차단 할 수 있 습 니 다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기