여러 개의 Thread
를 사용해, 동시에 여러 작업 처리
💡Multi Processing과의 차이
Multi-Thread는 하나의 Process 안에서 작동되는 개념이고, Multi-Processing은 여러 Process가 동시에 돌아가는 개념이다.
event
발생시 → Handler
호출
callback
을 이용하여 Handler
를 작성해 준다.Thread
와 유사하나, 여러 execution-context
를 가진 단일 Thread
에서 동작.
여러 대의 컴퓨터가 하나의 시스템으로 동작하도록 구성된 시스템.
(feat. 네트워크 연결)
Multi-Thread
혹은 Multi-Processes
가 동시에 접근하는 자원을 관리하는 기법.
작업의 실행 결과를 기다리지 않고 다음 작업을 수행한다. (동시에 실행하지 않는다.)
비동기 처리가 효과적인 경우
IO Blocking 등 시간이 오래 걸리는 작업 execute
→ 백그라운드에서 run 하는 동안 다음 작업 실행 → 나중에 결과 취합
- 자원의 효율적인 관리 - CPU 사용률 증가
- 작업 처리 시간 감소
💡IO 작업이 백그라운드로 돌아갈 수 있는 이유
IO 작업은 CPU가 아니라 **하드웨어가 담당**하기 때문!!
한 작업(단일 시스템)
→ 여러 개
의 작업으로 작업 단위를 분할 및 병렬화고, 동시에 처리한다.
ex) DBMS, 컴파일러 등
한 개 이상의 작업
→ 여러 시스템
로 분산시켜 처리하는 방법.
한 시스템으로 처리하기 힘든 대규모 시스템에 적합하다.
ex) 대규모 서버, 클라우드 등의 분산형 서버, 검색엔진