언어/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 인터페이스를 구현한다.

 

 

 

참조

https://dailyworker.github.io/java-thread/