Thread 클래스 와 Runable 인터페이스

4655 단어 Java
Thread 클래스
  Thread 는 자바 에서 다 중 스 레 드 를 실현 하 는 클래스 로 Thread 의 run () 방법 은 스 레 드 의 시작 을 실현 합 니 다.Thread 클래스 를 계승 하고 run () 을 덮어 쓰 는 방법 으로 하나의 스 레 드 를 실현 할 수 있 습 니 다.Thread 클래스 는 java. lang 패키지 에서 이 루어 집 니 다. 이 패 키 지 는 기본적으로 불 러 오기 때문에 import 가 필요 없습니다.
ThreadDome01.java
자바 코드
  • class Demo extends Thread   
  • {   
  •   private string name ;   
  •   
  •   Demo( String name)   
  •   {   
  •     this.name = name ;   
  •   }   
  •   
  •   public void run()   
  •   {   
  •     for( int i = 0; i 10 ; i++ )   
  •     System.out.println( this.name + “ running a thread……” ) ;   
  •   }   
  • }   
  •   
  • // 주 프로그램  
  • public class ThreadDome01   
  • {   
  •   public static void main( String arg[] )   
  •   {   
  •     Demo d1 = new Demo(“Thread_1”) ;   
  •     Demo d2 = new Demo(“Thread_2”) ;   
  •     d1.run() ;   
  •     d2.run() ;   
  •   }   
  • }  
  • class Demo extends Thread
    {
      private string name ;
    
      Demo( String name)
      {
        this.name = name ;
      }
    
      public void run()
      {
        for( int i = 0; i < 10 ; i++ )
        System.out.println( this.name + “ running a thread……” ) ;
      }
    }
    
    //    
    public class ThreadDome01
    {
      public static void main( String arg[] )
      {
        Demo d1 = new Demo(“Thread_1”) ;
        Demo d2 = new Demo(“Thread_2”) ;
        d1.run() ;
        d2.run() ;
      }
    }

    프로그램 ThreadDemo 01. java 에서 두 개의 스 레 드 를 실 행 했 지만 실행 할 때 동시에 실행 되 지 않 았 습 니 다. 주 프로그램 에 두 개의 스 레 드 를 만 들 었 지만 두 개의 스 레 드 순 서 를 실 행 했 기 때 문 입 니 다. 여러 스 레 드 를 동시에 실행 하려 면 다 중 스 레 드 에 대한 운영 체 제 를 시작 해 야 합 니 다. Thread 클래스 의 start () 방법 을 사용 해 야 합 니 다. 주 프로그램 을 다음 으로 변경 하 십시오.
    자바 코드
  • public class ThreadDome01   
  • {   
  • public static void main( String arg[] )   
  • {   
  •     Demo d1 = new Demo(“Thread_1”) ;   
  •     Demo d2 = new Demo(“Thread_2”) ;   
  • d1.start() ;   
  • d2.start() ;   
  • }   
  • }  
  • public class ThreadDome01
    {
    public static void main( String arg[] )
    {
        Demo d1 = new Demo(“Thread_1”) ;
        Demo d2 = new Demo(“Thread_2”) ;
    d1.start() ;
    d2.start() ;
    }
    }

    메모: start () 는 자동 으로 run () 방법 을 호출 합 니 다. Thread 클래스 의 start () 방법 을 덮어 쓸 필요 가 없습니다.
    2. Runable 인터페이스
        자바 는 단일 계승 관계 이기 때문에 Thread 류 를 계승 하면 다른 종 류 를 계승 할 수 없 기 때문에 Thread 를 계승 하 는 방법 은 자주 사용 되 지 않 습 니 다. 자바 에 서 는 다 중 스 레 드 를 실현 하 는 방법, 즉 Runable 인 터 페 이 스 를 제공 합 니 다.
        Runable 인터페이스 에서 run () 이라는 방법 만 정 의 했 기 때문에 다 중 스 레 드 는 운영 체제 의 지원 이 필요 하고 run () 방법 은 시작 할 수 없 으 며 Thread 류 의 start () 를 통 해 시작 해 야 합 니 다.다 중 스 레 드 를 지원 하 는 운영 체 제 를 시작 합 니 다. Thread 클래스 에서 Runabel 형식의 매개 변 수 를 사용 하 는 구조 함 수 를 제공 합 니 다. 따라서 다 중 스 레 드 를 실현 하 는 방법 은 Runable 인 터 페 이 스 를 먼저 실현 한 다음 Thread (Runable) 를 통 해 스 레 드 를 구축 하고 Thread 의 start () 방법 으로 다 중 스 레 드 를 간접 적 으로 시작 하 는 것 입 니 다. 다음 과 같은 예 를 들 어 다음 과 같 습 니 다.
    ThreadDome02.java
    자바 코드
  • class Demo implements Runable   
  • {   
  •   private string name ;   
  •   
  •   Demo( String name)   
  •   {   
  •     this.name = name ;   
  •   }   
  •   
  •   public void run()   
  •   {   
  •     for( int i = 0; i 10 ; i++ )   
  •     System.out.println( this.name + “ running a thread……” ) ;   
  •   }   
  • }   
  •   
  • // 주 프로그램  
  • public class ThreadDome02   
  • {   
  •   public static void main( String arg[] )   
  •   {   
  •     Demo d1 = new Demo(“Thread_1”) ;   
  •     Demo d2 = new Demo(“Thread_2”) ;   
  •   
  •     //다 중 스 레 드 지원 시작  
  •   Thread t1 = new Thread(d1);   
  •     Thread t2 = new Thread(d2);   
  •   
  •     t1.start() ;   
  •     t2.start() ;   
  •   }   
  • }  
  • class Demo implements Runable
    {
      private string name ;
    
      Demo( String name)
      {
        this.name = name ;
      }
    
      public void run()
      {
        for( int i = 0; i < 10 ; i++ )
        System.out.println( this.name + “ running a thread……” ) ;
      }
    }
    
    //    
    public class ThreadDome02
    {
      public static void main( String arg[] )
      {
        Demo d1 = new Demo(“Thread_1”) ;
        Demo d2 = new Demo(“Thread_2”) ;
    
        //       
      Thread t1 = new Thread(d1);
        Thread t2 = new Thread(d2);
    
        t1.start() ;
        t2.start() ;
      }
    }
    

    좋은 웹페이지 즐겨찾기