[SPRING] Spring ThreadPoolTaskExecutor의 corePoolSize와 maxPoolSize의 차이점은 무엇입니까?
SPRINGSpring ThreadPoolTaskExecutor의 corePoolSize와 maxPoolSize의 차이점은 무엇입니까?
나는 massEmails를 웹 사이트의 모든 사용자에게 보내야한다. 발송되는 각 이메일에 대해 스레드 풀을 사용하고 싶습니다. 현재 값을 다음과 같이 설정했습니다.
<property name="corePoolSize" value="500" />
<property name="maxPoolSize" value="1000" />
이 둘의 차이점은 무엇이며 규모는 어떻게됩니까? 현재 나는 약있다. 10000 명의 사용자가 있습니다.
해결법
-
==============================
1.javadoc은 다음과 같이 말합니다.
javadoc은 다음과 같이 말합니다.
특정 상황에서 동시에 500 개의 이메일을 보내는 것은 의미가 없으므로 메일 서버를 압도하게됩니다. 많은 수의 전자 메일을 보내야하는 경우 단일 스레드를 사용하고 한 번에 하나씩 파이프를 보냅니다. 메일 서버는 500 개의 개별 연결보다 훨씬 효율적으로 처리합니다.
-
==============================
2.corePoolSize는 풀에서 사용되는 최소 스레드 수입니다. 이 숫자는 maxPoolSize까지 증가 할 수 있습니다. 부하가 떨어지면 풀은 다시 corePoolSize로 축소됩니다.
corePoolSize는 풀에서 사용되는 최소 스레드 수입니다. 이 숫자는 maxPoolSize까지 증가 할 수 있습니다. 부하가 떨어지면 풀은 다시 corePoolSize로 축소됩니다.
전자 메일 보내기는 I / O 바운드 작업으로 보입니다. 나는 500 개의 스레드를 사용하는 것이 더 빠를 것이라고 생각하지 않는다.
-
==============================
3.다음은 간단한 용어로 작성된 Sun의 규칙입니다.
다음은 간단한 용어로 작성된 Sun의 규칙입니다.
전체 기사
원점 답변
-
==============================
4.corePoolSize 또는 maxPoolSize의 값을 늘리는 것보다 queueCapacity의 값을 늘리는 것을 고려해야합니다. 이 두 속성 (* PoolSize)은 실행할 풀의 수이지만 각 메시지는 queueCapacity에서 고려할 것입니다
corePoolSize 또는 maxPoolSize의 값을 늘리는 것보다 queueCapacity의 값을 늘리는 것을 고려해야합니다. 이 두 속성 (* PoolSize)은 실행할 풀의 수이지만 각 메시지는 queueCapacity에서 고려할 것입니다
<property name="corePoolSize" value="5" /> <property name="maxPoolSize" value="10" /> <property name="queueCapacity" value="1000" /> <property name="waitForTasksToCompleteOnShutdown" value="true"/>
10000 명의 사용자가 1000 * 10 (maxPoolSize) = 10000을 보낼 수 있지만 각 스레드의 1000이 무거울 경우 poolSize를 늘릴 수 있습니다.
from https://stackoverflow.com/questions/1878806/what-is-the-difference-between-corepoolsize-and-maxpoolsize-in-the-spring-thread by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring @Configuration 클래스 이해하기 (0) | 2019.01.12 |
---|---|
[SPRING] Spring / json : List <MyPojo>와 같은 형식화 된 컬렉션 변환 (0) | 2019.01.12 |
[SPRING] 자바 스프링스에서 <String, List> 맵을 삽입하는 방법? (0) | 2019.01.12 |
[SPRING] java.lang.IllegalArgumentException : 형식의 반환 값에 대한 변환기가 없습니다. (0) | 2019.01.12 |
[SPRING] 자바 스프링으로 MongoDB 3.0에 연결하기 (0) | 2019.01.12 |