Blocking/Non-Blocking과 Sync/Async의 차이
Blocking/Non-Blocking과 Sync/Async는 비슷한 모양새 이지만, 서로 완전히 다른 개념입니다. Blocking과 Non-Blocking은 '프로세스(또는 쓰레드)가 멈춰서 다른 작업을 할 수 없는 방식인지?' 를 말합니다. 예를 들어 Blocking 모델을 사용하는 일반적인 소켓은 recv 함수를 호출할 경우 프로세스(또는 쓰레드) 자체가 Blocking 상태에 빠집니다. 마치 Sleep을 호출한 것 처럼, I/O 작업이 모두 완료되기 전까지 다른 아무런 작업도 할 수 없습니다. 하지만 Non-Blocking 모델을 사용하는 소켓의 경우, I/O 작업의 종료 유무에 상관 없이, 결과값을 바로 반환 합니다.당장 내게 들어온 데이터는 없지만, 언젠간 들어올 것이라고 가정하고 우선 로직을..
insoooo
2018. 8. 7. 23:08
개발
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday