2010-01-24 6 views
2

java에서 알 수 있듯이 쓰레드에 우선 순위가 있으며 가비지 컬렉터는 우선 순위가 가장 낮은 쓰레드입니다. 그래서 특정 Java 애플리케이션에 대해 가비지 컬렉터에 우선 순위를 부여하여 해당 애플리케이션에 대한 메모리 관리를 늘릴 수 있는지 여부를 알고 싶습니다.자바에서 가비지 콜렉션 쓰레드의 우선 순위를 올릴 수 있습니까?

+2

모든 JVM은 가비지 수집을 다르게 구현합니다. 어떤 JVM을 사용하고 있습니까? –

+0

SUN의 JVM – GuruKulki

+1

을 사용하고 있습니다. 이유는 무엇입니까? –

답변

2

는 가비지 컬렉터가 가능한 적은 시스템 자원을 소비하고 싶은, 그리고 당신이 그렇지 않으면 할 수있는 아주 좋은 이유가 없다면 당신이해야 JVM 변경 또는 업그레이드로 인해 조정이 무효화 될 수 있으므로 시스템 기본 설정을 그대로 두십시오.

따라서 가비지 수집 설정을 고민하지 말 것을 권한다. 그렇게해야 할 충분한 이유가있는 경우 적절하게 질문을 편집하십시오.

1

작업을 완료하기 위해 데몬 스레드의 우선 순위에 의존하지 마십시오. 자바가 10 단계의 스레드 우선 순위를 가지고 있다고 가정 해보자.하지만 네이티브 OS 스레드 (우선 순위가 170 ​​레벨 인 Solaris)에 매핑되면 우선 순위가 다시 매핑됩니다. 또한 Windows NT는 각 CPU주기별로 스레드 우선 순위를 비 계승 적으로 늘리는 특유의 습관을 가지고 있습니다. 스레드 우선 순위를 사용하여 앱의 흐름을 제어하려고하면 이식성 문제가 발생할 수 있습니다. 자세한 내용은

여전히 타임 슬라이싱 방식에 우선 순위가 낮은 스레드를 선점 할 수 JVM 높은 우선 순위 쓰레드의 구현에 따라이 SO question

를 참조하십시오. 타임 슬라이싱을 추가하면 같은 우선 순위의 쓰레드간에 처리가 혼합됩니다. 다중 프로세서 시스템에서 스레드가 동시에 실행될 수도 있습니다. 안타깝게도이 기능은 응용 프로그램의 동작에 차이를 유발할 수 있습니다.

관련 문제