언어/Java
JAVA Thread(스레드)
ITiing
2020. 3. 2. 21:03
Thread
- 하나의 프로세스 내부에서 독립적으로 실행되는 작업 단위를 말한다.
세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미한다.
- JVM에 의해 하나의 프로세스가 발생하고 main()안의 실행문들이 하나의 스레드이다.
- 다중 스레드 작업시에는 각 스레드끼리 정보를 주고받을 수 있어 처리과정의 오류를 줄일 수 있다.
- 프로세스끼리는 정보를 주고받을 수 없다.
Multi Threading (멀티스레딩)
- 하나의 프로세스가 여러 스레드를 동시에 실행시키는 기법을 말한다.
장점
- CPU 사용률을 향상시킨다.
- 자원을 효율적으로 사용한다.
- 사용자에 대한 응답률이 향상된다.
- 작업이 분리되어 코드가 간결해진다.
단점
- 서로 자원을 소모하다가 충돌이 일어날 수 있다.
- 동기화(Synchronization), 교착상태(Deadlock) 등의 문제가 발생할 수 있다.
Thread의 생성주기
- Runnable 상태(Ready) : 스레드가 실행되기 위한 준비 단계
- Running 상태 : 스케쥴러에 의해 선택된 스레드가 실행되는 단계
- Blocked 상태 : 스레드가 작업을 완수하지 못하고 잠시 멈추는 단계
Thread 구현
- Thread Class를 상속받는다.
- Runnable 인터페이스를 구현한다.
참조