>  기사  >  Java  >  Java 스레드 우선순위 예에 대한 자세한 설명

Java 스레드 우선순위 예에 대한 자세한 설명

Y2J
Y2J원래의
2017-05-03 15:05:251236검색

이 글에서는 주로 Java 스레드 우선순위 세부사항 및 예제에 대한 정보를 소개합니다. 필요한 친구는

Java 스레드 우선순위 세부사항 및 예제

를 참조할 수 있습니다. 시스템은 기본적으로 시간 분할 스케줄링을 사용하여 스레드를 실행합니다. 운영 체제는 시간 조각을 하나씩 할당하고 스레드는 여러 시간 조각에 할당됩니다. 스레드의 시간 조각이 모두 사용되면 스레드 스케줄링이 발생하고 대기합니다. 다음 스케줄링에서는 스레드에 할당된 시간 조각에 따라 스레드가 사용하는 프로세서 리소스의 양이 결정되고, 스레드 우선순위는 스레드가 할당할 수 있는 프로세서 리소스의 양을 결정하는 스레드 속성입니다.

Java 멀티스레딩에서 우선순위는 정수 변수 우선순위에 의해 제어됩니다. 우선순위 범위는 1~10이며, 우선순위가 높을수록 좋습니다.

public class Priority { 
  public static void main(String[] args) { 
    Thread t1 = new Mythread(); 
    t1.setName("线程1"); 
    t1.setPriority(1); //设置优先级 
    Thread t2 = new Mythread(); 
    t2.setName("线程2"); 
    t2.setPriority(10); //设置优先级 
    t1.start(); 
    t2.start(); 
  }  
} 
class Mythread extends Thread{ 
  @Override 
  public void run() { 
    for(int i=0;i<10;i++){ 
      System.out.println(getName()+"执行"+i+"次"); 
    } 
  } 
}

실행 결과:

线程2执行0次 
线程2执行1次 
线程2执行2次 
线程2执行3次 
线程2执行4次 
线程2执行5次 
线程2执行6次 
线程2执行7次 
线程2执行8次 
线程2执行9次 
线程1执行0次 
线程1执行1次 
线程1执行2次 
线程1执行3次 
线程1执行4次 
线程1执行5次 
线程1执行6次 
线程1执行7次 
线程1执行8次 
线程1执行9次

시스템이 스레드 1을 먼저 실행하는 것을 볼 수 있습니다. 그러나 스레드 1은 매번 먼저 실행되지는 않습니다. 특히 두 스레드 간의 우선순위 차이가 그다지 크지 않은 경우 스레드 우선순위는 기본적으로 거의 영향을 미치지 않습니다. 운영 체제는 Java 스레드 우선순위 결정을 완전히 무시할 수 있으므로 프로그램 정확성을 위해 스레드 우선순위를 신뢰할 수 없습니다.

위 내용은 Java 스레드 우선순위 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.