spring boot 다 중 스 레 드 구현

1648 단어 springboot
설정 클래스
설정 클래스 가 비동기 지원 을 시작 하려 면 @ EnableAsync 주 해 를 추가 해 야 합 니 다.
인터페이스 AsyncConfigurator 를 설정 하고 ThreadPoolTaskExecutor 스 레 드 풀 대상 을 되 돌려 줍 니 다.
최소 스 레 드 수, 최대 스 레 드 수, 대기 열 설정
@ComponentScan("com.lgh.service")             service   
@Configuration
//      
@EnableAsync
public class AsyncTaskConfig implements AsyncConfigurer {
    @Override
    public Executor getAsyncExecutor() {
        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
        taskExecutor.setCorePoolSize(5);//      
        taskExecutor.setMaxPoolSize(10);//      
        taskExecutor.setQueueCapacity(25);//     

        taskExecutor.initialize();

        return taskExecutor;
    }

    @Override
    public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
        return null;
    }
}

ThredPoolTaskExcutor 의 처리 프로 세 스 는 현재 스 레 드 탱크 크기 가 corePoolSize (최소 스 레 드 수) 보다 작 으 면 새로운 스 레 드 를 만 들 고 요청 을 처리 합 니 다. 전선 스 레 드 탱크 크기 가 corePoolSize 와 같 으 면 요청 을 워 크 큐 에 넣 습 니 다. 스 레 드 탱크 의 빈 스 레 드 는 워 크 큐 에서 작업 을 가 져 오고 워 크 큐 가 작업 을 놓 지 못 할 때 새 스 레 드 를 풀 에 넣 습 니 다.또한 요청 을 처리 합 니 다. 만약 에 연못 의 크기 가 maximum PoolSize (최대 스 레 드 수) 에 이 르 렀 다 면 Rejected Execution Handler 로 처리 거부 합 니 다. 연못 의 스 레 드 수가 core PoolSize 보다 많 을 때 남 은 스 레 드 는 keepAlive Time 을 오래 기다 리 고 요청 이 없 으 면 다 중 스 레 드 @ Async 주 해 를 스스로 취소 합 니 다. 이 를 비동기 로 표시 합 니 다. 클래스 에 추가 할 수 있 습 니 다.이러한 방법 이 모두 비동기 적 인 방법 임 을 나타 내 고 방법 에 덧 붙 여 이 방법 이 비동기 적 인 방법 임 을 나타 낸다.
@Async
    public void executeAsyncTask(Integer i){
        System.out.println("      :" + i);
    }

 

좋은 웹페이지 즐겨찾기