본문 바로가기

Language/Java

[JAVA] 자바 쓰레드 ( Java Thread )

쓰레드 ( Thread )

: 프로그램을 실행시켜 동작하고 있는것 (직렬적이다.)

하나의 프로세스를 동시에 처리하는 것 처럼 보이지만, 사실으 매우 짧은 단위의 시간으로 분할하여 차례로 처리되고있는것이다. 

 

- 프로그램

: 프로그래밍 언어로 구성된 소스코드로 만든 것.

 

- 프로세스

: 메모리를 할당받아 실행 중인 프로그램.

 

멀티 쓰레드(분업)

: 여러개의 경로를 가질 수 있게 한다.(병렬적이다.)

한 개의 처리경로를 여러개로 나누어 동시 작업이 가능하다.

 

- 교착상태

: 멀티 쓰레드 중 쓰레드간의 대기 상태가 종료되지 않아 무한정 대기만 하는 비정상적인 상태

(오라클 DB는 교착 상태에 빠지면 60초를 기준으로 교착상태를 판단하여 자동으로 재시작 혹은 일부를 끊는다.

 

* 해결방안 : 조건문 등을 이용해 교착 상태를 다시 깨워준다.

 

* join() : 쓰레드 사용시 쓰레드 종료 전에 다른 로직 수행시 예기치 못한 치명적 오류가 발생한다. 

그러므로 join()사용시 밑에 로직들은 쓰레드가 종료 될때까지 기다린 후 실행 된다.