자바 쓰레드 run(),start() 차이점

조태진·2024년 4월 22일
0

자바 기초

목록 보기
5/6

자바에서 run()과 start() 메서드는 멀티쓰레드 프로그래밍에서 중요한 역할을 합니다.

run() 메서드:

  • run() 메서드는 java.lang.Runnable 인터페이스에 정의되어 있습니다.
  • 일반적으로 쓰레드가 실행할 작업을 정의하는 메서드입니다.
  • run() 메서드를 직접 호출하면, 현재 스레드에서 메서드가 실행됩니다. 다른 스레드에서 실행되지 않습니다.
  • 그러므로 run() 메서드를 호출하면, 멀티쓰레드 프로그래밍에서는 단일 스레드로 동작합니다.

start() 메서드:

  • start() 메서드는 java.lang.Thread 클래스에 정의되어 있습니다.
  • start() 메서드를 호출하면, JVM은 새로운 쓰레드를 생성하고, 해당 쓰레드에서 run() 메서드를 실행합니다.
  • 따라서 멀티쓰레드 환경에서는 start() 메서드를 호출하여 새로운 쓰레드를 생성하고 실행합니다.
  • start() 메서드는 내부적으로 쓰레드의 생명 주기를 관리하며, 쓰레드를 초기화하고 실행합니다.

간단히 말해, run() 메서드는 단순히 작업을 정의하고, start() 메서드는 쓰레드를 시작하여 해당 작업을 실행합니다. 만약 start()를 호출하지 않고 run()을 호출한다면, 단순히 메서드가 실행되기만 할 뿐 실제로는 멀티쓰레드로 동작하지 않습니다.

0개의 댓글