연속성 Non-Blocking 과 동시성 Asynchronous

민준·2024년 12월 27일
0
post-thumbnail

1. 연속성: Blocking vs Non-Blocking

"작업 중 다른 작업으로 인해 멈춤이 발생하는가?"

Blocking

작업이 중간에 멈춰야 하는 경우.
예시: 파일을 읽는 작업 중 CPU가 데이터를 기다리면서 멈춰있는 상황.
→ "파일 읽을 때까지 다른 작업은 잠깐 멈추고 기다려!"

Non-Blocking

작업이 멈추지 않고 바로 다음 작업으로 넘어가는 경우.
예시: 파일 읽기를 요청하고, 읽는 동안 CPU는 다른 작업을 계속 진행.
→ "파일 읽으라고 요청했으니 그동안 다른 작업부터 하자!"


2. 동시성: Synchronous vs Asynchronous

"작업이 서로 기다리거나 독립적으로 처리되는가?"

동기 Synchronous

앞선 작업이 완료되어야 다음 작업을 시작.
예시: 호출한 함수가 결과를 반환할 때까지 기다림.
→ "A 작업 끝날 때까지 기다려야 B 작업을 시작할 수 있어."

비동기 Asynchronous

앞선 작업이 완료되지 않아도 다음 작업을 시작.
예시: 호출한 함수는 실행만 하고, 결과는 나중에 콜백으로 처리.
→ "A 작업이 끝나든 말든 일단 B 작업을 진행해!"

0개의 댓글