개발/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시간)"을 학습하며 정리한 내용입니다.
틀린 사항이 있을 경우, 알려주시면 감사하겠습니다 :) 

반응형