Blocking / Non-Blocking, Synchronous / Asynchronous
동기와 비동기 ? Blocking Non-Blocking?개발을 공부하다 보면 동기 / 비동기라는 단어를 자주 접하게 됩니다. 또한 이 둘과 혼동될 수 있는 Blocking , Non-Blocking 개념도 종종 들을 수 있습니다. 미묘하게 다른 두 개념을 함께 살펴보겠습니다. BlockingOS관점의 블로킹은 프로세스가 어떤 작업을 위해 OS에 기능을 요청했는데 ( System Call ) OS가 해당 태스크를 바로 처리할 수 없을 경우, thread 를 “sleep” 혹은 “blocked” 상태로 변경합니다. 즉, CPU 큐에서 내려오고, 작업이 완료될 때 까지 대기합니다. 요청된 작업이 완료된 후에 OS는 thread를 깨웁니다.이렇게 스레드를 sleep 상태로 만들 수 있는 함수를 “blockin..
2024.01.20