OTHER

[OTHER] 블록킹 / 논블록킹과 동기 / 비동기

집한구석 2021. 6. 7. 22:47
728x90

정의

  • 블록킹 : 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른작업이 끝날때까지 기다렸다가 자신의 작업을 시작하는 것 (Thread관점에서 본다면, 요청 작업을 마칠 때까지 계속 대기)
  • 논블록킹 : 다른 주체의 작업과 상관없이 자신의 작업을 하는 것
  • 동기 : 두주체의 작업을 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작함을 의미
  • 비동기 : 시작, 종료가 불일치, 끝나는 동시에 시작하지 않음을 의미 (두 주체가 서로의 시작 종료시간 관계없이 별도의 작업 수행 시작 / 종료시간을 가지고 있을 때를 의미함)

블록킹 / 논블록킹 기준

  • 블록킹과 논블록킹은 다른 작업을 수행하는 주체를 어떻게 상대하는지에 따라 정해짐

동기 / 비동기 기준

  • 작업을 수행하는 것이 동시에 이루어지거나 동시에 종료되거나의 여부에 따라 정해짐

동기 / 비동기, 블록킹 / 논블록킹 조합

http://wiki.plateer.com/pages/viewpage.action?pageId=7767390

  1. 동기 / 블록킹 조합 : 결과가 처리되어 나올때까지 기다려서 응답을 받아서 결과를 전달
  2. 동기 / 논블록킹 : 결과가 없으면 바로 응답처리, 결과가 있으면 바로 결과 전달 (동기처리를 위하여 결과가 완료되었는지 계속 체크함)
  3. 비동기 / 블록킹 : 다른작업의 주체가 작업하는동안 대기 (블록킹 따라감)
  4. 비동기 / 논블록킹 : 작업 요청을 바다엇 별도의 프로세서에서 진행하고 바로 결과 전달함

동기 / 비동기 / 블록킹 / 논블록킹은 각각 다른개념, 비동기 / 블록킹은 대표 예로 Ajax, 비동기 논블록킹은 WebSocket이 있음

'OTHER' 카테고리의 다른 글

[OTHER] 모놀리식 아키텍처  (0) 2021.07.12
[NETWORK] Polling / Long Polling / Streaming  (0) 2021.06.10
[OS] 가상화  (0) 2021.06.05
[NETWORK] CNAME과 A RECODE  (0) 2021.06.02
[HTTP] Authentication Basic vs Bearer  (0) 2020.12.17