스레드 풀 예제

먼저 WorkerThread.java 1이라는 Runnable 클래스가 있어야 합니다. 스레드 풀은 JVM에서 일부 메모리 위치를 복용하는 경우 예 다음 JVM의 어느 부분이 그렇지 않으면 2를 설명하십시오. JVM이 스레드 실행을 담당하는 방법. 3. t.start를 호출하여 우리는 내부적으로 run 메서드를 호출하는 스레드 풀에서 새 스레드를 만들고 있으며 이제 내 질문은 실행 메서드가 스레드 상태 또는 프로그램 실행에서 볼 수 있듯이 java에서 메서드를 실행할 수있는 메서드를 실행할 책임이 있습니다. 에서 작업 4 또는 작업 5는 풀의 스레드가 유휴 상태가 되는 경우에만 실행됩니다. 그때까지 추가 작업은 큐에 배치됩니다. 실행기.newSingleThreadExecutor() API는 단일 스레드를 포함하는 또 다른 일반적인 형태의 ThreadPoolExecutor를 만듭니다. 단일 스레드 실행기는 이벤트 루프를 만드는 데 이상적입니다. 코어풀크기 및 최대풀크기 매개변수는 1과 같고 keepAliveTime은 0입니다. 또한 이 ThreadPoolExecutor는 변경할 수 없는 래퍼로 장식되어 있으므로 생성 후 다시 구성할 수 없습니다.

이것이 우리가 ThreadPoolExecutor에 캐스팅할 수 없는 이유입니다. 위의 팩터리 메서드에서 제공하는 실행기 중 어느 것도 사용자의 요구를 충족하지 않는 경우 java.util.concurrent.ThreadPoolExecutor 또는 java.util.concurrent.ScheduledThreadPoolExecutor의 인스턴스를 생성하면 추가 옵션이 제공됩니다. 크기 = 3개의 스레드가 있는 스레드 풀 초기화입니다. 작업 큐 = 5 실행 가능한 개체 ThreadPoolExecutor 작업 생성 및 해당 실행을 구분 합니다. ThreadPoolExecutor를 사용하면 Runnable 개체를 구현하고 실행기로 보내기만 하면 됩니다. 실행, 인스턴스화 및 필요한 스레드로 실행합니다. 다음은 동일한 스레드에서 작업의 실행을 보여 주는 예제입니다. 제공된 작업이 500밀리초 동안 절전 모드이지만 현재 스레드를 차단하고 실행 호출이 완료된 직후에 결과를 사용할 수 있습니다.

완료: 이 문서에서는 스레드 풀 패턴및 표준 Java 라이브러리와 Google의 구아바 라이브러리에서의 구현에 대해 설명했습니다. 스레드 풀은 미리 초기화된 스레드의 컬렉션입니다.