동기vs비동기 , 블로킹vs논블로킹

2024. 10. 15. 00:30·CS

📍 동기와 비동기

동기 ; Synchronous

동기는 작업을 순차적으로 실행하며 한 작업이 완료될 때까지 다음 작업은 대기한다.

한 작업이 완료될 때까지 대기하는 이유는 결과값 혹은 순서가 중요하기 때문.

비동기 ; Asynchronous

비동기 처리는 병렬적으로 실행하며 여러 작업을 동시에 처리할 수 있는 방식이다.

다른 작업의 완료를 대기하지 않아도 되며, 결과의 순서를 예측하기 어렵다.

그래서 끝났을 때 결과 이벤트 처리를 위해 콜백함수를 사용한다.

피호출 함수의 작업이 완료되어도 호출 함수가 결과값에 대해 바로 처리하지 않아도 된다.

비동기 프로그래밍의 방법

  • 멀티쓰레드
  • 논블로킹 IO

비동기와 논블로킹 관계성에 대해 궁금해졌는데 비동기라는 개념이 더 크게 잡혀있다.

동기와 비동기는 결과를 돌려주었을 때 결과값과 순서에 관심이 있는지 아닌지로 판단할 수 있다.

📍 블로킹과 논블로킹

블로킹; Blocking

A함수가 B함수를 호출하면 A함수는 B함수가 끝났을 때까지 기다렸다가 B함수가 완료되면 A함수를 실행하는 것이다.

제어권을 다른 작업에게 넘겨주는 것이다.

논블로킹 ; Non-Blocking

A함수가 B함수를 호출하여도 A함수의 작업을 실행한다.

제어권을 그대로 자신이 가지고 있는 것이다.

블로킹과 논블로킹은 다른 주체가 작업할 때 자신의 제어권이 있는지 없는지로 판단할 수 있다

참고

https://velog.io/@nittre/블로킹-Vs.-논블로킹-동기-Vs.-비동기

https://poloopy.tistory.com/24

https://youtu.be/oEIoqGd-Sns?si=zILTqwPLMhwQknfC

https://youtu.be/EJNBLD3X2yg?si=1fc8OA1GdSfhcre4

'CS' 카테고리의 다른 글

동기 vs 비동기 / 블로킹 vs 논블로킹 실습 코드로 이해하기  (0) 2025.11.13
MSA 환경에서 서비스별 Swagger UI를 GitHub Pages로 배포하기  (0) 2025.09.22
'CS' 카테고리의 다른 글
  • 동기 vs 비동기 / 블로킹 vs 논블로킹 실습 코드로 이해하기
  • MSA 환경에서 서비스별 Swagger UI를 GitHub Pages로 배포하기
꾸준히 기록하는 지수
꾸준히 기록하는 지수
서비스 백엔드 개발자가 되기 위해 제 경험들을 하나씩 기록해봅니다
  • 꾸준히 기록하는 지수
    지수블로그
    꾸준히 기록하는 지수
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • Spring (15)
      • JAVA (9)
      • 클라우드_인프라 (4)
      • Data (5)
      • CS (3)
      • 돌아보기 (0)
      • 취업준비 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DASP합격후기
    트랜잭션
    SCG
    스프링클라우드
    Spring
    MSA
    스프링
    스프링부트
    DASP후기
    트러블슈팅
    SpringCloudGateway
    데이터아키텍처준전문가
    DASP합격
    트랜잭션전파
    자격증
    스프링트랜잭션
    AWS
    궁금증
    스프링테스트
    DAsP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
꾸준히 기록하는 지수
동기vs비동기 , 블로킹vs논블로킹
상단으로

티스토리툴바