【Java】ThreadPoolExecutor 사용자 정의 스 레 드 풀 생 성
Fixed ThreadPool 과 Single Thread Pool: 무한 대기 열 을 사용 합 니 다.요청 대기 열 길 이 는 Integer.MAX 입 니 다.VALUE,대기 열 에 대량의 요청 이 쌓 일 수 있 습 니 다.
new CachedThreadPool,new Scheduled ThreadPool:허용 되 는 생 성 스 레 드 수량 은 Integer.MAX 입 니 다.VALUE 는 무제 한 스 레 드 를 만 들 수 있 고 대량의 스 레 드 를 만 들 수 있 습 니 다.
이 네 개의 스 레 드 탱크 를 만 드 는 방법 은 모두 OOM 문 제 를 초래 하기 쉬 우 며 잠재 적 인 지연 위험 이 있다.
따라서 대량의 요청 이 있 을 수 있 는 스 레 드 풀 장면 에서 사용자 정의 Thread PoolExecutor 를 사용 하여 스 레 드 풀 을 만 드 는 것 을 추천 합 니 다.구체 적 인 구조 함수 설정 은 다음 과 같 습 니 다.
ublic ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
코어 풀 사이즈:핵심 라인 수.작업 이 수행 되 지 않 더 라 도 핵심 스 레 드 는 계속 존재 합 니 다.스 레 드 수가 핵심 스 레 드 보다 적 을 때 남 은 스 레 드 가 있어 도 핵심 스 레 드 에 도달 할 때 까지 스 레 드 를 만 듭 니 다.보통 1 로 설정 하면 됩 니 다.
maximumPoolSize:최대 스 레 드 수.스 레 드 탱크 에 존재 할 수 있 는 최대 스 레 드 수량 입 니 다.
keepAliveTime:스 레 드 여유 시간.스 레 드 가 keepAliveTime 에 이 르 렀 을 때 스 레 드 가 핵심 스 레 드 수 와 같 을 때 까지 종료(닫 기)합 니 다.
work Queue:대기 열 을 막 습 니 다.Array BlockingQueue 와 같은 경계 대기 열 을 사용 하 는 것 을 권장 합 니 다.생 성 할 때 크기 를 지정 합 니 다.
ThreadFactory:스 레 드 공장 생 성.일반적으로 스 레 드 이름 을 설정 하 는 데 사 용 됩 니 다.
handler:정책 거부.보통 로그 기록 등 으로 쓰 인 다.
스 레 드 탱크 크기 설정
일반적으로 작업 유형 에 따라 구분 되 며 CPU 를 N 핵 으로 가정 합 니 다.
CPU 밀집 형 태 스 크,즉 대량의 계산 작업 이 필요 합 니 다.라인 수량 을 줄 이 고 라인 전환 으로 인 한 비용 을 줄 여야 합 니 다.라인 풀 크기 를 N 으로 설정 할 수 있 습 니 다. + 1.
4.567917.IO 밀집 형 임무,즉 네트워크 를 통 해 상호작용 을 해 야 하 는 임무 로 데이터베이스 데이터 상호작용,파일 업로드 다운로드,네트워크 데이터 전송 등 임 무 를 말한다.스 레 드 수량 을 늘 릴 수 있 습 니 다.스 레 드 탱크 크기 를 N 으로 설정 할 수 있 습 니 다. * 2。그러나 실제 상황 에서 자신의 테스트 를 통 해 합 리 적 인 수 치 를 설정 할 수 있 고 큰 소 와 의 교 류 를 통 해 알 수 있 듯 이 이 수 치 는 CPU 핵심 수/(1-차단 계수)로 설정 할 수 있 으 며 차단 계 수 는 보통 0.8~0.9 사이 이다.예 를 들 어 8 핵 CPU 는 8*(1-0.9)=80 으로 설정 할 수 있다
혼합 형 임 무 는 CPU 밀집 형 과 IO 밀집 형 으로 나 누 어 독립 적 으로 설정 할 수 있다.
스 레 드 탱크 의 사용 은 글 을 참고 할 수 있 습 니 다.
https://www.cnblogs.com/nankeyimengningchenlun/p/9132987.html
https://www.cnblogs.com/wood-lin/p/4221331.html
https://www.jianshu.com/p/f6024f806534
https://www.jianshu.com/p/a16425dbd6a3
https://www.cnblogs.com/shoshana-kong/p/10941250.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
웹 개발 자가 가지 고 있 는 CentOS 작은 책저 는 이 길이 앞으로 나 아 가 는 것 이 라 고 생각 했 지만 길 은 빙빙 돌 고 있 습 니 다.종이 위 에 있 는 것 은 결국 얕 은 것 을 깨 닫 고 처음에 보면 종종 무슨 일 인지 모 르 며 전체적인 경지 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.