2011-05-11 3 views
0

JVM의 스레드 풀 크기를 변경해야합니다. 이럴 가능성이 있습니까? JVM에서 높은 스레드 Jar를 실행 중입니다. 그 이유는 일부 스레드가 잠이나 블록 단계 아래에 간다.JVM의 스레드 풀 크기 변경

답변

0

jvm에는 전역 스레드 풀 자체가 없습니다. java.util.concurrent.Executor- 구현 중 하나를 사용하고 있다면 해당 클래스/메소드에 대한 javadoc을 읽으십시오. 이 코드는 코드에서 생성 한 풀 당 자바 코드로 조정되며 JVM과 관련이 없습니다.

즉, 각각의 스레드 (일반적으로)는 스택을 위해 512KB의 가상 메모리를 소비하므로 32 비트 jvm의 최대 가능한 스레드 수를 제한한다는 점을 고려하십시오 (그러나 문제는 없습니다. 조금도).

스레드가 많이 차단되면 다툼이있을 수 있습니다. 즉, 대기중인 공통 리소스가 있음을 의미합니다. 아마도 "동기화 된"것을 많이 사용하고 있습니까? 스레드가 많을수록 문제가 해결되지는 않지만 OS와 JVM에서 더 많은 리소스를 소비합니다.

코드가 수행하는 작업과 방법에 대해 좀 더 자세히 살펴보고 조금 더 도움이 될 수 있습니다.