논블로킹

1 개요[ | ]

non-blocking
논블로킹
  • 특정 작업을 수행하는 동안 프로그램의 실행이 중단되지 않고 다른 작업을 계속 수행할 수 있는 방식
  • 이는 입출력(IO) 작업, 네트워크 통신, 파일 접근 등의 비동기적 처리에 주로 적용되어, 시스템의 효율성과 반응성을 높이는 데 기여한다.
  • 논블로킹 방식은 특히 웹 서버, 데이터베이스 시스템, 네트워크 프로그래밍 등 다양한 분야에서 중요하게 사용된다.
  • 예를 들어, 논블로킹 I/O 모델을 사용하는 Node.js는 단일 스레드에서 수천 개의 동시 연결을 효과적으로 처리할 수 있어, 실시간 애플리케이션과 고성능 서버 개발에 널리 쓰인다.

2 특징[ | ]

  • 비동기 실행: 작업이 완료될 때까지 기다리지 않고, 작업의 시작 후 즉시 제어권을 반환하여 다른 작업을 계속할 수 있다.
  • 리소스 활용 최적화: 논블로킹 방식은 리소스(예: CPU 시간)를 효율적으로 활용하여, 동시에 여러 작업을 처리할 수 있도록 한다.
  • 프로그램 반응성 향상: 사용자 인터페이스(UI)가 더 반응적이 되며, 시스템이 멈추지 않고 계속해서 응답할 수 있다.
  • 복잡성 증가: 논블로킹 프로그래밍 모델은 동기식 프로그래밍에 비해 구현이 더 복잡할 수 있으며, 이벤트 처리, 콜백 함수, 프라미스, async/await 등의 비동기 패턴을 사용하여 이 복잡성을 관리한다.

3 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}