-
process
실행 중인 program -
run()
생성된 쓰레드를 실행시키는 것이 아니라 단순히 클래스에 선언된 메서드를 호출하는 것일 뿐이다.
- start()
쓰레드가 작업을 실행하는데 필요한 호출스택(call stack)을 생성한 다음에 run()을 호출해서, 생성된 호출스택에 run()이 첫 번째로 올라가게 한다.
- thread
모든 쓰레드는 독립적인 작업을 수행하기 위해 자신만의 호출스택을 필요로 하기 때문에, 새로운 쓰레드를 생성하고 실행시킬 때마다 새로운 호출스택이 생성되고 쓰레드가 종료되면 작업에 사용된 호출스택은 소멸된다.
호출스택에서는 가장 위에 있는 메서드가 현재 실행중인 메서드 나머지 메서드들은 대기상태
- main쓰레드
실행 중인 사용자 쓰레드가 하나도 없을 때 프로그램은 종료된다.
- 쓰레드
- 사용자 쓰레드(user thread) or non-daemon thread
- 데몬 쓰레드(daemon thread)