자바 이론
Thread
koyuchang
2020. 8. 24. 19:54
구현방법
쓰레드를 구현하는 방법은 Thread클래스를 상속받는 것과, Runnable 인터페이스를 구현하는 방법, 모두 2가지가 있다. 이 두가지 방법 중 어느 쪽을 사용해도 별 차이는 없지만 Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없기 때문에, Runnable 인터페이스를 구현하는 것이 일반적.
구현코드
run() vs start()
스레드 실행과 관련된 두 가지 중요한 메서드는 run()과 start()메서드이다. run() 메서드는 스레드에서 수행할 작업을 정의하는 메서드이고 start()메서드 호출은 스레드의 run() 메서드가 호출될 수 있도록 준비하는 과정이다. 실제 run() 메서드를 호출하는 것은 JVM이다. start()가 호출되면 JVM이 운영체제의 스레드 스케줄러에 의해 가능할 때 스레드의 run()메서드를 호출한다. 따라서 우리 코드상에서는 run() 메서드를 호출하지 않는 것이다. 마치 우리가 직접 main() 메서드를 호출하지 않은 것과 같다.