-
[JAVA] Thead와 Runnable 차이 (미완)카테고리 없음 2017. 11. 22. 01:29
자바에서 Thread를 구현하는 방법에는 2가지가 있다.
1. Thread Class를 상속(extends)하여 사용하는 방법
2. Runnable Interface를 구현(implements)하는 방법
둘의 차이는 무엇일까?
먼저 Thread는 "Class", Runnable은 "Interface"라는 점을 토대로 Class와 Interface의 차이를 생각해 볼 수 있다.
1. Java의 경우 다중상속이 불가능 하므로, Thread Class를 상속할 경우 다른 Class들을 상속할 수 없다.
(Interface의 경우 여러 Interface를 구현할수 있다)
2. Thead Class를 상속받아 생긴 Thread 객체는 재사용을 할 수 없다.
(Runnable을 구현한 경우 재사용 가능)
Thead 상속
class ThreadExample extends Thread { //Thread Class 오버라이딩 public void run() { } }
ThreadExample threadExample = new Thread(); threadExample.start();
Runnable 구현
class RunnableExample implements Runnable { //Runnable 추상 메소드 구현 public void run() { } }
Runnable runnableExample = new RunnableExample(); Thread thread = new Thread(runnableExample); thread.start();
참고
http://blog.daum.net/hughlee193/138
http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=241