BACKEND.*

thread start vs run

초코푸딩 2022. 1. 4. 23:30

run으로 실행시킬 경우,
- 스레드는 스택으로 쌓여서 병렬처리 불가능하다. (싱글 쓰레드로 동작한다.)
- 호출 수에 제한없이 계속 호출할 수 있다.

start로 실행시킬 경우,
- 쓰레드만의 독립적인 호출스택이 생성된다. 스레드가 순차적으로 실행되는게 아닌 병렬실행이 된다.
- 동일한 객체에서 두번이상 start 메서드를 실행하면
thread의 상태를 체크해서, 0이 아니라면 IllegalThreadStateException 예외를 발생시킨다.