English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java에서 스레드와 실행 가능성의 차이

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

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

각 스레드는 식별을 위해 이름을 가집니다. 여러 스레드가 동일한 이름을 가질 수 있습니다. 스레드를 생성할 때 이름을 지정하지 않으면 새로운 이름이 생성됩니다.

순서실시간
1
기본 
스레드는 클래스입니다. 스레드를 생성하기 위해 사용됩니다 
Runnable은 스레드를 생성하기 위한 함수 인터페이스입니다 
2
메서드
그것은 다양한 메서드를 포함합니다start()run()
그것은 추상 메서드만을 가집니다 run()
3
 각 스레드는 독립적인 객체를 생성하고 그것과 연결됩니다
여러 스레드가 동일한 객체를 공유합니다.
4
기억 
필요한 메모리가 많습니다 
필요한 메모리가 적습니다 
5
제한 사항 
Java에서多重 상속은 허용되지 않으므로, 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();
   }
}