🌈 iOS개발자 앨런의
프로그래밍에서 동기/비동기 개념에 대한 가장 직관적인 이해
를 보고 정리한 글입니다.
작업을 다른 스레드에 보내고 해당 작업이 끝날 때까지 기다린 후(block) 다음 작업을 시작한다.
Before | After |
---|---|
![]() | ![]() |
작업을 다른 스레드에 보내고 바로 다음 작업을 시작한다.
Before | After |
---|---|
![]() | ![]() |
다른 하나의 스레드로만 작업을 보낸다. 작업의 순서를 지켜야 하는 경우 사용한다.
Before | After |
---|---|
![]() | ![]() |
다른 여러 개의 스레드로 분산하여 작업을 보낸다.
Before | After |
---|---|
![]() | ![]() |
비동기
와 동시
는 같은 말인가?
비동기: 작업을 보내는 스레드에 관련된 개념이다. 작업을 보내는 스레드가 보낸 작업이 끝나기를 기다리는지 아닌지가 중요하다.
동시: 작업을 받는 스레드에 관련된 개념이다. 작업을 받는 스레드가 한 개인지 아닌지가 중요하다.
비동기
와 동시
는 무엇과 관련이 있는 개념인가?
비동기: 서버와의 통신(네트워크 작업)
동시: 성능, 반응성, 최적화
동시(concurrent)
와 병렬(parallel)
은 같은 말인가?
동시: 싱글 코어에서 멀티 스레드를 동작시키는 방식이다. 실제로 여러 작업이 동시에 진행되지는 않는다.
병렬: 멀티 코어에서 멀티 스레드를 동작시키는 방식이다. 실제로 여러 작업이 동시에 진행된다.