Thread
- 메모리를 할당받아 실행 중인 프로그램을 프로세스라고 한다.
- 스레드란 프로세스 내에서 실행되는 흐름의 단위라고 할 수 있다.
Thread 생성
- 2가지 방법
- 직접 상속 받아 쓰레드 생성
- Runnable 인터페이스를 구현해서 생성
Thread 클래스 이용
- Thread 클래스로부터 제공되는 run() 메소드를 오버라이딩 해서 사용
- 현재의 클래스가 이미 다른 클래스로부터 상속 받고 있다면 Runnable 인터페이스를 이용하여 생성
- run() 메소드가 종료되면 스레드는 종료된다
- 스레드를 계속 실행시키고 싶다면 run()메소드를 무한루프 속에 실행시켜야할 것
- 한번 종료한 스레드는 다시 시작시킬 수 없다.
스레드 상태는 JVM에 의해 기록 관리 된다.
① NEW : 스레드가 생성되었지만 스레드가 아직 실행할 준비가 되지 않았음
② RUNNABLE : 스레드가 실행되고 있거나 실행준비되어 스케쥴링은 기달리는 상태
③ WAITING : 다른 스레드가 notify(), notifyAll()을 불러주기 기다리고 있는 상태(동기화)
④ TIMED_WAITING : 스레드가 sleep(n) 호출로 인해 n 밀리초동안 잠을 자고 있는 상태
⑤ BLOCK : 스레드가 I/O 작업을 요청하면 자동으로 스레드를 BLOCK 상태로 만든다.
⑥ TERMINATED : 스레드가 종료한 상태
