자바 스 레 드 만 드 는 두 가지 방법 차이

자바 에서 스 레 드 를 만 드 는 방법 은 두 가지 가 있 습 니 다.Thread 클래스 를 계승 하고 Runnable 인 터 페 이 스 를 실현 합 니 다.
다음은 두 가지 예 를 통 해 이들 의 차 이 를 분석한다.
1)스 레 드 클래스 계승

public class TestThread extends Thread {
  int count = 3;

  public TestThread(String ThreadName) {
    super(ThreadName);
  }

  @Override
  public void run() {
    for (int i = 0; i < 10; i++)
      if (count > 0) {
        System.out.println(Thread.currentThread().getName() + "--->" + count);
        count--;
      }
  }

  public static void main(String[] args) {
    //new       
    new TestThread("   ").start();
    new TestThread("   ").start();
    new TestThread("   ").start();
  }
}

출력 결과:
스 레 드 1--->3
스 레 드 1--->2
스 레 드 1
스 레 드 2--->3
스 레 드 2
스 레 드 2--->1
스 레 드 3--->3
스 레 드 3--->2
스 레 드 3--->1
2)Runnable 인터페이스 구현
Thread 를 계승 하 는 코드 와 같 습 니 다:

public class TestThread implements Runnable {
  int count = 3;

  public TestThread() {
  }

  @Override
  public void run() {
    for (int i = 0; i < 10; i++)
      if (count > 0) {
        System.out.println(Thread.currentThread().getName() + "--->" + count);
        count--;
      }
  }

  public static void main(String[] args) {
    TestThread tr = new TestThread();
    //new          Runnable
    new Thread(tr, "   ").start();
    new Thread(tr, "   ").start();
    new Thread(tr, "   ").start();
  }
}

출력 결과:
스 레 드 1--->3
스 레 드 1--->2
스 레 드 1 
두 가지 새 스 레 드 방식 의 마지막 출력 결과 가 다른 것 을 발견 할 수 있 습 니 다.Thread 클래스 를 계승 하 는 동시에 세 개의 스 레 드 를 만 들 었 기 때 문 입 니 다.모든 스 레 드 는 하나의 작업 을 수행 하고 세 개의 스 레 드 가 각각 세 번 순환 인쇄 log 를 하 는 것 과 같 습 니 다.두 번 째 실현 Runnable 인터페이스 에 서 는 세 개의 Thread 를 만들어 공동으로 tr 라 는 Runnable 을 실행 하 는 것 입 니 다.세 개의 Thread 가 공동으로 이 순환 을 수행 하 는 것 과 같 습 니 다.마지막 으로 count 는 한 번 만 순환 되 었 고 나머지 스 레 드 2 와 스 레 드 3 은 같은 count 를 사용 하여 인쇄 하지 못 했 습 니 다.
결론:
1)두 가지 스 레 드 를 만 드 는 실현 방식 이 다 릅 니 다.하 나 는 하 나 를 계승 하여 인 터 페 이 스 를 실현 합 니 다.자바 에서 다른 부모 클래스 를 계승 했다 면 인터페이스 로 스 레 드 를 만 들 수 밖 에 없습니다.
2)위의 예 를 통 해 Thread 를 계승 하 는 것 을 볼 수 있 습 니 다.모든 스 레 드 는 하나의 대상 을 독립 적 으로 가지 고 있 으 며 Runnable 대상 을 실현 하고 여러 스 레 드 는 하나의 Runnable 인 스 턴 스 를 공유 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기