본문 바로가기
Java

JAVA Thread와 Runnable 의 차이

by titlejjk 2023. 5. 11.

Thread와 Runnable은 Java에서 멀티스레드를 구현하기 위해 사용되는 클래스오 인터페이스이다.

Thread는 클래스로 구현되어 있고

Runnable은 인터페이스로 구현되어 있다.

Thread와 Runnable의 차이점과 특징을 알아보자.

 

Runnable 인터페이스를 구현하는 방법은 재사용성이 높고 코드의 일관성을 유지 할수 있다는 장점이 있기 때문에 보다 객체지향적인 방법이라 할수 있다. Runnable은 익명 객체 및 람다로 사용할 수 있지만, Thread는 별도의 클래스를 만들어야 한다는 점에서 번거롭다. 또한 Java에서는 다중 상속이 불가능하므로 Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없어 좋지 않다. 그리고 Thread 클래스를 상속받으면 Thread 클래스에 구현된 코드들에 의해 더 많은 자원(메모리와 시간 등)을 필요로 하므로 Runnable이 주로 사용된다.

 

Thread 클래스를 상속받아 사용하는 방법은 run 메소드를 오버라이딩하여 사용한다.Thread 클래스를 상속받아 구현하면 Thread 클래스의 멤버 변수 및 메소드들을 사용할 수 있다. Thread 클래스를 상속받아 사용하면 다른 클래스를 상속받을 수 없으므로, 다른 클래스를 상속받아야 할 경우 Runnable인터페이스를 구현하여 사용하는 것이 좋다.

 

Runnable 인터페이스를 구현하는 하는 방법은 Thread클래스를 상속받아 사용하는 것보다 유연하며, Runnable 인터페이스를 구현하는 클래스에서는 Thread 클래스의 멤버 변수 및 메소드를 사용할 수 없다. 즉 둘 중 하나만 사용가능하며, Runnable 인터페이스를 구현하여 사용할 때는 Thread 클래스의 인스턴스를 생성하여 Runnable 인터페이스를 구현한 클래스의 인스턴스를 생성한 후, Thread 클래스의 start() 메소드를 호출하여 실행한다.

일반적으로 Runnable 인터페이스를 구현하여 사용하는 것이 좋다.

 

Thread 클래스와 Runnable 인터페이스를 사용하는 방법은 각각의 특징에 따라 선택하면 된다. Thread 클래스를 상속 받아 사용할 경우 Thread 클래스의 멤버 변수 및 메소드를 사용할 수 있지만, 다른 클래스를 상속받을 수 없으므로 일반적으로 Runnable 인터페이스를 구현하는 것이 좋다.

'Java' 카테고리의 다른 글

JAVA JDBC  (0) 2023.05.15
JAVA Input & Output  (0) 2023.05.11
JAVA Thread  (1) 2023.05.11
JAVA Exception  (0) 2023.05.10
JAVA List Set Map  (0) 2023.05.08

댓글