Thread
프로세스
의미
- 실행된 프로그램
- 운영체제로부터 시스템 자원을 할당받는 작업의 단위
- 자바 프로그램은 OS 대신 JVM 에 의해 자원을 할당받는다.
쓰레드
의미
- 프로세스의 특정한 수행 경로
- 프로그램의 처리 경로
- 프로그램의 흐름
멀티 쓰레드
의미
- 여러 개의 경로를 가질 수 있게한다.
- 한 개의 처리 경로를 여러 개로 나누어 동시 작업이 가능하다.
- 하나의 프로세스를 동시에 처리하는 것처럼 보이지만 사실은 매우 짧은 단위로 분할해서 차례대로 처리한다.
- 웹 페이지(JSP)가 대표적인 멀티 쓰레드 응용 프로그램이다.
장점
- 효율성 증가
- 처리량 증가
- 처리비용 증가
단점
- 복잡하고 설계가 어려움
- 자원의 공유문제 발생
- 교착상태Dead Lock 발생
3-0. 제어문을 통해 교착상태를 판단하고 다시 깨워준다.
생성
- Thread 클래스 상속
- Runnable 인터페이스 지정 후 Thread 객체에 넘겨주기
synchronized
동기화
하나의 쓰레드가 실행 중일 때 다른 쓰레드가 동시에
같은 필드를 사용하지 못하도록 막는 것
synchronized(this){
}