자바 다 중 스 레 드 구현 방식

자바 다 중 스 레 드 실현 방식 은 주로 두 가지 가 있 습 니 다.Thread 류 를 계승 하고 Runnable 인 터 페 이 스 를 실현 합 니 다.
1.Thread 클래스 를 계승 하여 다 중 스 레 드 실현
Thread 클래스 를 계승 하 는 방법 은 제 가 다 중 스 레 드 실현 방식 으로 지정 되 었 음 에 도 불구 하고 Thread 는 본질 적 으로 Runnable 인터페이스 의 인 스 턴 스 를 실현 합 니 다.이것 은 스 레 드 의 인 스 턴 스 를 대표 하고 스 레 드 를 시작 하 는 유일한 방법 은 Thread 류 의 start()인 스 턴 스 방법 입 니 다.start()방법 은 native 방법 으로 새로운 스 레 드 를 시작 하고 run()방법 을 실행 합 니 다.이 방식 은 다 중 스 레 드 를 실현 하 는 것 이 간단 합 니 다.자신의 클래스 를 통 해 직접 extend Thread 를 통 해 run()방법 을 복사 하면 새로운 스 레 드 를 시작 하고 자신 이 정의 한 run()방법 을 실행 할 수 있 습 니 다.예 를 들 면:

public class MaYi extends Thread {
  String name;
  public MaYi(String name){
    this.name = name;
  }
  public void run(){
    while(true){
      try {
        Thread.sleep(1000);//  1 
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      System.out.println(name+"      ......");
    }
  }
}
시작 루틴:

  public static void main1(String[] args) {
    MaYi m1 = new MaYi("1 ");
    m1.start();
    MaYi m2 = new MaYi("2 ");
    m2.start();

2.Runnable 인터페이스 방식 으로 다 중 스 레 드 실현
자신의 클래스 가 다른 클래스 를 계승 했다 면 extends Thread 를 직접 확장 할 수 없습니다.이 때 Runnable 인 터 페 이 스 를 실현 해 야 합 니 다.다음 과 같 습 니 다.

public class MyThread extends OtherClass implements Runnable { 
  public void run() { 
   System.out.println("MyThread.run()"); 
  } 
}
MyThread 를 시작 하기 위해 서 는 먼저 Thread 를 실례 화하 고 자신의 MyThread 인 스 턴 스 를 입력 해 야 합 니 다.

MyThread myThread = new MyThread(); 
Thread thread = new Thread(myThread); 
thread.start();
실제로 Runnable target 인 자 를 Thread 에 전송 하면 Thread 의 run()방법 은 target.run()을 호출 합 니 다.JDK 소스 코드 를 참고 하 십시오.

public void run() { 
  if (target != null) { 
   target.run(); 
  } 
} 
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기