스레드의 차단은 스레드가 작업이 완료될 때까지 다른 작업을 수행하지 못하고 기다리는 상태를 뜻함.

 

스레드 차단의 발생 상황
  1. I/O작업 : 파일을 읽거나 쓰거나, 네트워크를 통해 데이터를 전송하거나 받는 등의 작업을 수행할 때 발생
    (스레드는 데이터가 읽혀지거나 쓰여질 때까지 차단됨)

  2. 동기적인 작업 : 다른 스레드가 완료될 때까지 기다리는 경우
    (스레드 A가 스레드 B가 완료될 때까지 기다리는 상황이라면, 스레드 A는 스레드 B가 작업을 완료할 때까지 차단)
    스레드를 메서드로 빗대어 예시를 들어보자면 위와 같이 작성되었을 경우,
    A 메서드 시작 > A 메서드 차단 > B 메서드 시작 > B 메서드 종료 > A 메서드 종료가 된다.

  3. 락(Lock) 획득 : 스레드가 특정 락을 획독하기 위해 대기하는 경우
    (다른 스레드가 해당 락을 해제할 때까지 스레드는 차단 상태)

'Java > 개념 정리' 카테고리의 다른 글

동기적 메서드와 비동기적 메서드  (0) 2024.05.16
var 키워드에 대하여  (0) 2024.02.28
JWT(Json Web Token)의 구조  (0) 2024.02.22
Heap 이란?  (1) 2023.10.22
연결리스트(LinkedList)  (0) 2023.10.21

+ Recent posts