Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 Thread와 Runnable의 차이점

<시간/>

새 실행 스레드를 만드는 방법에는 두 가지가 있습니다. 하나는 클래스를 Thread 클래스의 하위 클래스로 선언하는 것입니다. 이 하위 클래스는 Thread 클래스의 run 메서드를 재정의해야 합니다. 그런 다음 하위 클래스의 인스턴스를 할당하고 시작할 수 있습니다.

스레드를 생성하는 다른 방법은 Runnable 인터페이스를 구현하는 클래스를 선언하는 것입니다. 그런 다음 해당 클래스는 run 메서드를 구현합니다. 그런 다음 클래스의 인스턴스를 할당하고 Thread 생성 시 인수로 전달하고 시작할 수 있습니다.

모든 스레드에는 식별을 위한 이름이 있습니다. 하나 이상의 스레드가 같은 이름을 가질 수 있습니다. 쓰레드 생성 시 이름을 지정하지 않으면 새 이름이 생성됩니다.

Sr. 아니요. 스레드 실행 가능
1
기본
스레드는 클래스입니다. 쓰레드를 생성하는데 사용
Runnable은 스레드를 생성하는 데 사용되는 기능적 인터페이스입니다.
2
메소드
start() 및 run()을 포함한 여러 메서드가 있습니다.
추상 메소드 run()만 있습니다.
3
각 스레드는 고유한 개체를 생성하고 연결됩니다.
여러 스레드가 동일한 개체를 공유합니다.
4
메모리
추가 메모리 필요
필요한 메모리 감소
5
제한
자바에서는 다중 상속이 허용되지 않으므로 클래스가 Thread 클래스를 확장한 후에는 다른 클래스를 확장할 수 없습니다.
클래스가 실행 가능한 인터페이스를 구현하는 경우 해당 클래스는 다른 클래스를 확장할 수 있습니다.

실행 가능한 예

class RunnableExample implements Runnable{
   public void run(){
      System.out.println("Thread is running for Runnable Implementation");
   }
   public static void main(String args[]){
      RunnableExample runnable=new RunnableExample();
      Thread t1 =new Thread(runnable);
      t1.start();
   }
}

스레드의 예

class ThreadExample extends Thread{
   public void run(){
      System.out.println("Thread is running");
   }
   public static void main(String args[]){
      ThreadExample t1=new ThreadExample ();
      t1.start();
   }
}