반응형
● 동기화, 비동기화?
데이터를 처리하는 방식에는 동기식 방식과 비동기식 방식이 존재한다.
동기식 처리 모델(Synchronous processing model)
- 한 자원에 대해 동시에 접근하는 것을 제한하는 방식
- 직렬적으로 태스크(task)를 수행 (순차처리)
- 어떤 작업이 수행 중이면 다음 작업은 대기하게 된다. (버퍼링이 발생)
ex) 서버에 데이터를 요청하고 데이터가 응답될 때까지 이후 태스크들은 블로킹(blocking, 작업 중단)된다.
장점 : 설계가 간단하고 직관적
단점 : 결과를 볼 때까지 아무것도 못하고 대기해야함
• 동기화 : 한 메서드가 실행되는 동안 다른 메서드 실행이 불가능하도록 블락하는 것.
비동기식 처리 모델(Asynchronous processing model 또는 Non-Blocking processing model)
- 한 자원에 대해 동시에 접근이 가능
- 병렬적으로 태스크를 수행
- 태스크가 종료되지 않은 상태라 하더라도 대기하지 않고 다음 태스크를 실행한다. (버퍼링이 적다)
ex) 서버에 데이터를 요청한 이후 서버로부터 데이터가 응답될 때까지 대기하지 않고(Non-Blocking) 즉시 다음 태스크를 수행한다.
장점 : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업이 가능해 자원의 효율적인 사용이 가능
단점 : 설계가 동기식보다 복잡함
• 비동기화 : 한 메서드가 실행되는 도중에 다른 메서드 실행이 가능하게 하는 것.
728x90
반응형
'컴퓨터시스템' 카테고리의 다른 글
http vs. https 차이 (0) | 2021.04.19 |
---|---|
[Programming Paradigm] 객체지향 vs. 절차지향 (0) | 2021.04.16 |
[Programming Paradigm] declarative(선언형) vs. imperative(명령형) programming (0) | 2021.04.01 |
소프트웨어 아키텍처 패턴 Software architectural pattern (0) | 2021.01.26 |
기억장치와 메모리 계층구조 (0) | 2020.12.30 |