너굴 개발 일지

동기 비동기 방식(Asynchronous processing model) 본문

Java

동기 비동기 방식(Asynchronous processing model)

너굴냥 2021. 6. 9. 14:48

 

 

동기(synchronous : 동시에 일어나는)

말 그대로 동시에 일어난다는 뜻으로 요청과 그 결과가 동시에 일어난다는 약속입니다. 요청을 하면 시간이 얼마나 걸리던 요청한 자리에서 결과가 주어져야 합니다. 예를 들면 송금 서비스 같은 작업은 동기 방식으로 처리해야 금액이 바로 반영되기에 혼란이 일어나지 않습니다.

 

 

비동기(Asynchronous : 동시에 일어나지 않는)

 

비동기는 동시에 일어나지 않는다를 의미합니다. 요청과 결과가 동시에 일어나지 않을거라는 약속입니다.

예를 들어 서버에서 데이터를 가져와서 화면에 표시하는 태스크를 수행할 때, 서버에 데이터를 요청한 이후 서버로부터 데이터가 응답될 때까지 대기하지 않고(Non-Blocking) 즉시 다음 태스크를 수행합니다. 이후 서버로부터 데이터가 응답되면 이벤트가 발생하고 이벤트 핸들러가 데이터를 가지고 수행할 태스크를 계속해 수행합니다.

예를 들면 학생은 시험 문제를 풀고 다 푼 학생은 선생님에게 제출합니다. 선생님이 시험지를 채점하는 동안 학생은 가만히 기다리는 것이 아닌 다른 공부를 하거나 게임을 하면서 기다리는 상황을 들 수 있습니다. 여기서 학생이 시험지를 돌려받기까지 기다리기만 한다면 학생의 상태를 블록 상태, 채점이 완료되었다는 전송을 받기 전까지 다른 행위를 하게 되면 학생의 상태는 논블록 상태가 됩니다.

 

출처 : https://poiemaweb.comjs-async

 

'Java' 카테고리의 다른 글

[Java] EOF(End of File) 처리  (0) 2021.09.07
[Java] BufferedReader, BufferedWriter  (0) 2021.09.07
자바 디자인 패턴 : Factory Method Pattern  (0) 2021.06.07
자바 디자인 패턴 : SingleTone  (0) 2021.04.29
TIL_210401_네트워킹  (0) 2021.04.04