스레드 탱크 대상을 만드는 데 필요한 매개 변수와 이 매개 변수의 역할

4616 단어
스레드 탱크 대상을 만드는 데 필요한 매개 변수와 이 매개 변수의 역할
JDK에서 스레드 탱크를 만드는 대상은 ThreadPoolExecutor 클래스를 제공하는데 그 구조 방법은 네 가지이며 구조 방법 매개 변수 목록에서 매개 변수의 개수가 가장 많은 것을 예로 들 수 있다.코드는 다음과 같습니다.
public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              ThreadFactory threadFactory,
                              RejectedExecutionHandler handler) {
        if (corePoolSize < 0 ||
            maximumPoolSize <= 0 ||
            maximumPoolSize < corePoolSize ||
            keepAliveTime < 0)
            throw new IllegalArgumentException();
        if (workQueue == null || threadFactory == null || handler == null)
            throw new NullPointerException();
        this.corePoolSize = corePoolSize;
        this.maximumPoolSize = maximumPoolSize;
        this.workQueue = workQueue;
        this.keepAliveTime = unit.toNanos(keepAliveTime);
        this.threadFactory = threadFactory;
        this.handler = handler;
    }

매개변수의 역할은 다음과 같습니다.
corePoolSize: 스레드 풀 코어 스레드 수, 유휴 상태에서도 JVM에 의해 회수되지 않습니다.
maximumPoolSize: 스레드 풀에 허용되는 최대 스레드 수입니다.코어 Pool Size에 도달하고workQueue가 작업에 가득 차면 계속해서 루트를 생성합니다.
keepAliveTime:corePoolSize 이후의'임시 라인'의 생존 시간을 초과합니다.
unit:keepAliveTime의 단위입니다.
workQueue: 현재 스레드 수가 코어PoolSize를 초과하면 새 작업이 대기 상태이며 workQueue에 존재합니다.
threadFactory: 스레드를 만드는 공장 클래스입니다.
handler: 요청을 처리하는 정책을 거부합니다. 작업 대기열이 가득 차고 작업 스레드가 스레드 탱크의 최대 스레드 수보다 크면 어떻게 처리해야 하는지 표시합니다.

좋은 웹페이지 즐겨찾기