2013-08-28 5 views
0

getcurrentthread.priority 메소드를 실행하면 스레드 우선 순위가 5가됩니다. Main 메소드보다 우선 순위가 높은 스레드.주요 메소드 5 번째 우선 순위. 우선 순위가 높은 스레드가 우선 순위가 높습니다.

+4

질문을 원하는대로 편집하십시오. 그것은 명확하지 않다 – Reddy

+0

사실 그는 그가 무엇을 물었는지 분명하다. 방금 두 번 읽어야합니다. – Joetjah

+0

사이드 노트에서 나는 합리적인 유스 케이스가 무엇인지 상상하기가 어렵습니다. 아마도, 당신은 잘못된 방향으로 가고 있습니다. – JimmyB

답변

1

나는 이것이 우선 순위 대기열에있는 스레드의 색인이라는 것을 의미한다고 가정하고 적어도 4 개의 다른 스레드가 있어야합니다.
글쎄,이 경우가 아니라 색인이 아니지만 값은 다른 동시 스레드 인과 우선 순위를 비교하는 데 사용됩니다.이 값은 VM뿐만 아니라 시스템에서도 마찬가지입니다. 사실 스레드는 동일한 우선 순위를 가질 수 있습니다.

사이드 노트 : 스레드의 우선 순위를 설정할 때는 항상 상수MIN_PRIORITY, NORM_PRIORITYMAX_PRIORITY를 사용합니다. 당신이 중간 값이 필요한 경우, 상수 사용하여 calcuate :

int mediumHighPriority = (Thread.NORM_PRIORITY+Thread.MAX_PRIORITY)/2; 

상수 값

가 미래에 변경 얻을 수를 낮은 숫자는 더 높은 우선 순위, 또는 NORM_PRIORITY 같도록 (반전도 넓은 범위를 가지고, 또는 수 더 낮거나 높을 수 있습니다.) 여러분이 값 대신 상수를 사용하면 저장면에 있고 코드가 읽기 쉽게됩니다.

+0

피터에게 감사드립니다. 이걸 좀 더 자세히 설명해 줄 수 있어요. 적어도 네 개의 다른 스레드가 있어야합니다. –

0

Java 응용 프로그램이 시작되면 JVM은 주 ThreadGroup을 시스템 ThreadGroup의 구성원으로 만들고 우선 순위를 기본값 (NORM_PRIORITY)으로 설정합니다.

이것은 현재 Java 프로그램의 스레드에만 적용되며 OS의 다른 프로세스에서 실행중인 다른 모든 스레드에 대한 정보는 제공하지 않습니다.

관련 문제