자바 스 레 드 스케줄 링 스 레 드 휴면 용법 분석

1941 단어
본 논문 의 사례 는 자바 스 레 드 스케줄 링 의 스 레 드 휴면 용법 을 분석 하 였 다.모두 에 게 참고 하도록 공유 하 다.구체 적 인 분석 은 다음 과 같다.
자바 스 레 드 스케줄 링 은 자바 다 중 스 레 드 의 핵심 으로 좋 은 스케줄 링 만 이 시스템 의 성능 을 충분히 발휘 하고 프로그램의 집행 효율 을 높 일 수 있다.  여기 서 명확 한 것 은 프로그래머 가 스케줄 을 어떻게 작성 하 든 스 레 드 실행 순서 에 최대한 영향 을 줄 수 있 을 뿐 정확 한 통 제 를 할 수 없다 는 것 이다.  스 레 드 휴면 의 목적 은 스 레 드 를 CPU 에 양보 하 는 가장 간단 한 방법 중 하나 입 니 다. 스 레 드 휴면 시 CPU 자원 을 다른 스 레 드 에 맡 겨 번갈아 실행 할 수 있 도록 합 니 다. 휴면 시간 이 지나 면 스 레 드 가 깨 어 나 준비 상태 에 들 어가 실 행 될 때 까지 기다 리 는 것 입 니 다.  스 레 드 휴면 방법 은 Thread. sleep (long millis) 와 Thread. sleep (long millis, int nanos) 입 니 다. 모두 정적 인 방법 입 니 다. sleep 휴면 의 어떤 스 레 드 를 사용 하 시 겠 습 니까?쉽게 말 하면 어떤 스 레 드 가 sleep 를 호출 하면 휴면 하 는 스 레 드 입 니 다.

/** 
* Java  :     -   
* 
* @author leizhimin 2009-11-4 9:02:40 
*/ 
public class Test { 
 public static void main(String[] args) { 
  Thread t1 = new MyThread1(); 
  Thread t2 = new Thread(new MyRunnable()); 
  t1.start(); 
  t2.start(); 
 } 
} 
class MyThread1 extends Thread { 
 public void run() { 
  for (int i = 0; i < 3; i++) { 
   System.out.println("  1 " + i + "   !"); 
   try { 
    Thread.sleep(50); 
   } catch (InterruptedException e) { 
    e.printStackTrace(); 
   } 
  } 
 } 
} 
class MyRunnable implements Runnable { 
 public void run() { 
  for (int i = 0; i < 3; i++) { 
   System.out.println("  2 " + i + "   !"); 
   try { 
    Thread.sleep(50); 
   } catch (InterruptedException e) { 
    e.printStackTrace(); 
   } 
  } 
 } 
}

실행 결 과 는 다음 과 같 습 니 다.

  2 0   ! 
  1 0   ! 
  1 1   ! 
  2 1   ! 
  1 2   ! 
  2 2   ! 

Process finished with exit code 0

위의 결과 출력 을 통 해 알 수 있 듯 이 스 레 드 실행 순 서 를 정확하게 보장 할 수 없습니다.

좋은 웹페이지 즐겨찾기