비동기(async) vs 동기(sync)

김준오·2021년 7월 6일
0

Swift

목록 보기
5/10

비동기 async

일을 시작시키고 "안기다린다"
-> 매인 스레드가 다른 일처리를 시작 할 수 있다.
작업을 다른 스레드로 보내고 즉시 리턴

동기 sync

일을 시작시키고 끝날때가지 "기다린다"
-> 메인 스레드에서 다른 스레드로 일을 시켰으면 그 일이 끝날때까지 다른작업 시작 안하고 기다린다.
-> 사실상 다른 스레드로 작업을 보내는게 의미가 없다. 메인스레드에서 처리하나 다른곳에 보내고 기다리나..

비동기가 필요한 이유?

대부분은 서버와의 통신 (네트워크 작업)때문
서버의 상황에 따라 얼마나 걸릴지 알 수 없기에
네트워크 관련 작업은 비동기로 처리를 해야한다.

예를들어 URL 세션같은 처리는 이미 내부적으로 비동기처리가 되어있다.


Async 예시


앞에 보라색이 안끝나도 다음작업으로 넘어 갈 수있음

Sync 예시


sync로 먼저 넣은큐 작업이 끝나고나서 뒤쪽 작업 시작

profile
jooooon

0개의 댓글