Thread와 Runable 의 차이점을 어찌 시원하게 알려주는책이 없는거 같아 검색좀 때려봤다.
Thread :
ThreadClass 의 method를 사용할수있음
작업 대상의 Class가 다른 Class로 부터 상속받을경우(자식 Class일 경우) Thread가 사용 불가능함
왜냐면 이미 extends를 했으니(부모는 하나 이상을 둘 수 없기 때문에!)
Runable:
다른Class로부터 상속받은 후, 해당Class를 Thread같이 사용가능
Thread Class의 Method를 사용 할 수 없음 Thread를 상속한 것이 아닌, Thread를 돌리기 위한 기능들을 모아놓은 인터페이스를 implement를 했으니깐. 즉, Runnable를 구현한뒤, 추상메소드를 객관화작업이 끝이나면, Thread를 돌릴 준비가 된 상태일 뿐이다.
Runnable 클래스 생성을 했던 곳에서, 생성한 클래스를 Thread화 시키고, 실행을 해야 비로소 제 역활을 할 수 있다.
Thread를 사용하기 전에,만들 코드에서 항상 유의점이, 싱크로나이즈가 되지 않아도 되는 코드인가 여부를 아는것이 중요하다고 한다, 이유는 열심히 설명이 적혀있는것을 보면 알다싶이, 아무리 열심히 동기화를 해주고 쓰레드에 제한을 잘 잡아줘도에외현상은 생기기 마련. 임시방편책으로 쓸만한 Thread Queue를 쓴다면 그러한 문제를 어느정도 해결할 수 있으나, 듀얼코어 이상의 성능을 기대할 수 없다고 하는데 이해는 잘..
Runnable은 Interface를 상속받는 방식이기 때문에 Thread의 상속방식보다 유연하다. 상속을 하나 이상 받아야 하는상황이 자주 생길태니.
정리 잘 한 곳 http://ra2kstar.tistory.com/130
댓글 없음:
댓글 쓰기