Spring Boot 설정 및 다 중 스 레 드 풀 사용 실현
2709 단어 SpringBoot다 중 스 레 드 탱크
spring boot 는 간단 하고 효율 적 인 스 레 드 탱크 설정 과 사용 방안 을 제공 합 니 다.
배치 하 다.
우선 스 레 드 탱크 를 설정 한 bean 은 spring 관리 에 맡 깁 니 다.
@Configuration
public class TaskExecutePool {
@Bean(name ="threadPoolA")
public ThreadPoolTaskExecutormyTaskAsyncPool() {
ThreadPoolTaskExecutor executor =new ThreadPoolTaskExecutor();
executor.setCorePoolSize(4);
executor.setMaxPoolSize(8);
executor.setQueueCapacity(100);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("Pool-A");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
@Bean(name ="ThreadPoolB")
public ThreadPoolTaskExecutorAsyncPoolB() {
ThreadPoolTaskExecutor executor =new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(4);
executor.setQueueCapacity(8);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("Pool-B");
// MaxPoolSize QueueCapacity ,
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
}
쓰다스 레 드 를 사용 하려 면 실행 방법 에 주석 을 달 아야 하 며,이 방법의 종 류 는 반드시 bean 으로 정의 되 어야 하 며,spring 에 의 해 관리 되 어야 합 니 다.
클래스 에 주석@Component,@Service 등 을 사용 할 수 있 습 니 다.
@Async(value="ThreadPoolA")
public void taskA(){
...
}
스 레 드 활약 도 보기:
@Autowired
private ThreadPoolTaskExecutor threadPoolA;// bean name 。
public void checkAvtiveThreadNum() {
int num = threadPoolA.getActiveCount();
}
물론 다른 방법 도 있 지만,여 기 는 더 이상 예 를 들 지 않 는 다.스 레 드 탱크 각 속성 이해:
core PoolSize:스 레 드 탱크 의 핵심 스 레 드 를 표시 하고 정상 적 인 상황 에서 열 리 는 스 레 드 수량 을 표시 합 니 다.
quueCapacity:핵심 스 레 드 가 모두 작업 을 달리 고 있 을 때 남 은 작업 이 여기에 저 장 됩 니 다.
max PoolSize:quueCapacity 가 가득 차 면 작업 이 더 많은 스 레 드 를 시작 합 니 다.스 레 드 수가 max PoolSize 에 도달 할 때 까지.임무 가 있 으 면 거부 전략 에 따라 처리 합 니 다.
거부 정책 은 여러 가지 가 있 습 니 다:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.