자바 4 대 스 레 드 탱크
스 레 드 풀 가 져 오기: ExecutorService pool = Executors. newCachedThreadPool () 등
1, newCachedThreadPool: 스 레 드 풀 Integer. MAXVALUE 는 무한대 로 60 초 안에 만 든 스 레 드 를 다시 사용 할 수 있 습 니 다. 두 번 째 작업 을 수행 할 때 첫 번 째 작업 이 완료 되 었 고 첫 번 째 작업 을 수행 하 는 스 레 드 (60 초) 를 다시 사용 합 니 다. 매번 새 스 레 드 를 사용 하지 않 아 도 됩 니 다.
버퍼 기능 을 가 진 스 레 드 탱크 를 만 들 고 corePoolSize = 0, maximumPoolSize = Integer. MAX 를 설정 합 니 다.VALUE, keepAliveTime = 60s, 그리고 용량 이 없 는 차단 대기 열 SynchronousQueue 입 니 다. 따라서 작업 을 제출 하면 새로운 스 레 드 를 만 들 것 입 니 다.스 레 드 여유 가 60s 를 초과 하면 소 멸 됩 니 다.
public static ExecutorService newCachedThreadPool() {
return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue());
}
2. new Fixed ThreadPool: 고정 라인 풀 을 만 들 고 스 레 드 의 최대 병발 수 를 제어 할 수 있 습 니 다. 초과 한 스 레 드 는 대기 열 에서 기다 릴 것 입 니 다.
고정 스 레 드 수의 스 레 드 풀 을 만 듭 니 다. 설정 한 core PoolSize 는 maximum PoolSize 크기 와 같 으 며, 동시에 무한 링크 드 BlockingQueue 를 사용 하여 차단 작업 을 저장 합 니 다. 따라서 불필요 한 작업 은 더 이상 차단 대기 열 이 존재 합 니 다. Rejected Execution Handler 에서 처리 하지 않 습 니 다.
public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue());
}
3. new Single ThreadExecutor: 단일 라인 화 된 스 레 드 풀 을 만 듭 니 다. 유일한 작업 스 레 드 로 만 작업 을 수행 하고 모든 작업 이 지정 한 순서 (FIFO, LIFO, 우선 순위) 에 따라 실 행 될 수 있 도록 합 니 다.
하나의 스 레 드 만 지원 하 는 스 레 드 풀 을 만 들 고 core PoolSize = maximum PoolSize = 1 을 설정 합 니 다.작업 이 스 레 드 직렬 로 실 행 될 것 을 보증 합 니 다.
public static ExecutorService newSingleThreadExecutor() {
return new FinalizableDelegatedExecutorService
(new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue()));
}
4. new Scheduled ThreadPool 은 고정된 길이 의 스 레 드 풀 을 만 들 고 지연 되 거나 시간 을 정 하 는 방식 으로 작업 을 수행 합 니 다.
정시 기능 이 있 는 스 레 드 탱크 를 구성 하고 corePoolSize 를 설정 하 며 무한 지연 차단 대기 열 Delayed WorkQueue 를 설정 합 니 다.재 미 있 는 것 은: maximum PoolSize = Integer. MAXVALUE, Delayed WorkQueue 는 무한 대기 열 이기 때문에 이 값 은 의미 가 없습니다.
public static ExecutorService newScheduledThreadPool(int corePoolSize) {
return new ScheduledThreadPool(corePoolSize,
Integer.MAX_VALUE,
DEFAULT_KEEPALIVE_MILLIS, MILLISECONDS,
new DelayedWorkQueue());
}
주: 스 레 드 탱크 거부 정책 은 무 계 대기 열 에 작용 하지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.