7 스레드 풀 매개 변수

자바에서, 우리는 일반적으로 Thread 클래스와 Runnnable 인터페이스를 통합함으로써 달성 스레드를 시작 스레드 () 메소드의 시작을 호출합니다. 그러나 시간이 동시의 수, 각 스레드가 실행되는 경우에 매우 짧은 시간이 너무 자주 쓰레드 생성과 파괴 공정이 크게 시스템 운영의 효율성을 감소시킬 것이며, 결국 것이다. 스레드 풀 그는 스레드의 끝이 파괴되지 않는 한 후, 스레드를 재사용 할 수있게하지만, 다른 작업을 계속 수행 할 수 있습니다, 발생하는 멀티 스레딩 문제의 낮은 효율성을 해결하는 것입니다. (당신이 예를 사용할 수있는 경우 바람둥이 생각)

java.uitl.concurrent.ThreadPoolExecutor 스레드 풀 클래스는 ThreadPoolExecutor에의 핵심 클래스, 네 개의 건설 방법이다. 소스 코드 지난 3 생성자의 전면에서 찾을 수 있습니다 초기화하는 네 번째 생성자라고합니다.

공용 클래스는 가능한 ThreadPoolExecutor AbstractExecutorService {연장
    .....
    공용 가능한 ThreadPoolExecutor를 (corePoolSize를 INT, maximumPoolSize를 긴 KeepaliveTime은, TimeUnit와 부 INT,
            인터페이스 BlockingQueue <Runnable를>이 Workqueue);
 
    공용 가능한 ThreadPoolExecutor (corePoolSize를 INT, maximumPoolSize를 긴 KeepaliveTime은, TimeUnit와 부, INT
            의 BlockingQueue <Runnable를> Workqueue는, ThreadFactory를 ThreadFactory를);
 
    공용 가능한 ThreadPoolExecutor (corePoolSize를 INT, maximumPoolSize를 긴 KeepaliveTime은, TimeUnit와 부 INT,
            인터페이스 BlockingQueue <Runnable를> Workqueue는, RejectedExecutionHandler 핸들러);
 
    공공 ThreadPoolExecutor입니다 (INT corePoolSize를, INT maximumPoolSize를, 긴이 KeepAliveTime, TimeUnit와 단위,
        인터페이스 BlockingQueue <Runnable를> Workqueue는, ThreadFactory를 ThreadFactory를, RejectedExecutionHandler 핸들러);
    ...
}
参数理解:

corePollSize : 스레드의 핵심 번호입니다. 당신이 만든 후에 스레드 풀 스레드는 임무의 도착이 작업을 수행하는 스레드를 만들 때까지 기다리는 모든 스레드를 가지고 있지 않습니다. 스레드 풀의 스레드 수는 corePoolSize를 도달 할 때 스레드 풀을 만든 후 나중에이 작업을 수행하는 스레드를 만듭니다하는 작업이있을 때 기본적으로 스레드 풀의 스레드 수는 0,의에 도달 할 것 작업은 캐시로 대기열.

maximumPoolSize를 : 스레드의 최대 수입니다. 그것은 스레드 최대 스레드의 수를 생성 할 수 있음을 보여준다.

이 KeepAliveTime : 유휴 시간 스레드 보유.

TimeUnit와 : 유휴 스레드의 유지 시간.

TimeUnit.DAYS; // 일
TimeUnit.HOURS; // 시간
TimeUnit.MINUTES; // 분
TimeUnit.SECONDS; // 두 번째
TimeUnit.MILLISECONDS; // 밀리
TimeUnit.MICROSECONDS; // 섬세한
TimeUnit.NANOSECONDS; // NS
인터페이스 BlockingQueue <Runnable를> 실행을 대기 큐에 저장 작업을 차단. 매개 변수 ArrayBlockingQueue를, LinkedBlockingQueue 등, SynchronousQueue는의 선택.

ThreadFactory를이 : 스레드 공장은 스레드를 생성하는 데 사용

RejectedExecutionHandler : 큐가 가득하고, 작업은 예외 처리 전략 최대 스레드보다 더 크다. 다음과 같은 값

ThreadPoolExecutor.AbortPolicy : RejectedExecutionException는 작업을 취소하고 예외를 throw합니다. 
ThreadPoolExecutor.DiscardPolicy는 : 작업은 폐기되지만 예외가 발생하지 않습니다. 
ThreadPoolExecutor.DiscardOldestPolicy는 : 최초 작업 큐를 폐기하고 재 (이 과정을 반복) 작업을 수행하려고
ThreadPoolExecutor.CallerRunsPolicy : 호출 스레드로 작업을 처리

HTTPS : //blog.csdn.net/hsf15768615284/article/details/ 설명 링크 78261173

게시 된 740 개 원래 기사 · 원 찬양 65 ·은 10 만 + 조회수

추천

출처blog.csdn.net/qq_41723615/article/details/104365060