Language/Java
[JAVA] 자바 쓰레드 ( Java Thread )
비독개
2020. 6. 28. 18:04
쓰레드 ( Thread )
: 프로그램을 실행시켜 동작하고 있는것 (직렬적이다.)
하나의 프로세스를 동시에 처리하는 것 처럼 보이지만, 사실으 매우 짧은 단위의 시간으로 분할하여 차례로 처리되고있는것이다.
- 프로그램
: 프로그래밍 언어로 구성된 소스코드로 만든 것.
- 프로세스
: 메모리를 할당받아 실행 중인 프로그램.
멀티 쓰레드(분업)
: 여러개의 경로를 가질 수 있게 한다.(병렬적이다.)
한 개의 처리경로를 여러개로 나누어 동시 작업이 가능하다.
- 교착상태
: 멀티 쓰레드 중 쓰레드간의 대기 상태가 종료되지 않아 무한정 대기만 하는 비정상적인 상태
(오라클 DB는 교착 상태에 빠지면 60초를 기준으로 교착상태를 판단하여 자동으로 재시작 혹은 일부를 끊는다.
* 해결방안 : 조건문 등을 이용해 교착 상태를 다시 깨워준다.
* join() : 쓰레드 사용시 쓰레드 종료 전에 다른 로직 수행시 예기치 못한 치명적 오류가 발생한다.
그러므로 join()사용시 밑에 로직들은 쓰레드가 종료 될때까지 기다린 후 실행 된다.