개발/Java
Thread와 Runnable차이
멍냐옹2
2023. 2. 20. 15:43
반응형
자바에서는 Thread 구현 방법이 2가지가 있다
1. Thread 방식
1) 선언
Thread라는 Class를 상속 받아 사용 한다.
public class CleanThread extends Thread{
public void run(){
~~~~
}
}
2) 호출
CleanThread 객체를 생성하여 .start()함수를 이용하여 호출 한다.
CleanThread cleanThread = new CleanThread();
// cleanThread.run();
cleanThread.start();
2. Runnable 방식
1) 선언
Runnable이라는 Interface를 구현하여 사용한다
public class CleanRunnable implements Runnable {
@Override
public void run(){
~~~
}
}
2) 호출
Runnable 객체를 생성 후, Thread를 생성하여 파라미터로 전달 해줘서 사용한다.
CleanRunnable cleanRunnable = new CleanRunnable();
Thread thread = new Thread(cleanRunnable);
thread.start();
cleanByBoss();
Runnable과 Thread는 Interface와 Class 차이로, Thread로 사용할 Class가 상속이 필요없는 경우에는 Class로 사용해도 되겠지만 혹시 모를 경우를 대비해 Interface로 구현하는 것이 좋아보인다!
* run()과 start() 함수 차이
1) run()
run 함수를 이용하여 호출 한 경우, 각각의 메소드 순서대로 진행된다.
CleanThread cleanThread = new CleanThread();
cleanThread.run();
cleanByBoss();
2) start()
start 함수를 이용해서 호출 한경우, 메소드가 동시에 실행된다.
순서는 실행 할 때마다 달라짐.
CleanThread cleanThread = new CleanThread();
cleanThread.start();
cleanByBoss();
해당 내용은 "인프런" - "나도코딩의 자바 기본편 - 풀코스 (20시간)"을 학습하며 정리한 내용입니다.
틀린 사항이 있을 경우, 알려주시면 감사하겠습니다 :)
반응형