새 실행 스레드를 만드는 방법에는 두 가지가 있습니다. 하나는 클래스를 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(); } }