맛동산이

Swift) 비동기 프로그래밍에 대한 이해 본문

앱/Swift

Swift) 비동기 프로그래밍에 대한 이해

진ddang 2023. 8. 31. 17:19

병렬 프로그래밍(Parallel Programming)

병렬프로그래밍이란, 여러개의 cpu가 하나의 task를 나눠서 처리하는것을 의미한다.

즉 예를들어, 파스타를 하나 만든다면 4개의 cpu가 서로, 면삶기, 소스만들기, 접시준비하기, 노래틀기 와 같이 일을 나눠서 한다고 생각하면 된다.

병렬프로그래밍이란, 멀티코어를 활용한 방법이다.

동시성 프로그래밍(Concurrent Programming)

동시성프로그래밍이란, 하나의 cpu가 동시에 여러개의 작업을 하는것을 의미하며, 실제로는 빠른속도의 context switching을 통해서 여러개를 동시하는것처럼 보이는 시분할 작업방법을 의미한다.

동시성 프로그래밍은 기존의 순서대로 명령들이 실행되는 구조에서 벗어나 명령들이 불규칙한 순서대로 실행될 수 있게 해주는 프로그래밍 기법이다. 멀티쓰레딩은 동시성 프로그래밍의 한 방법이지만, 동시성 프로그래밍이 꼭 병렬처리 및 멀티쓰레딩을 의미하지는 않는다.

즉 동시성은 다중스레딩 환경에서의 작업을 의미한다.

비동기 프로그래밍(Asynchronous Programming)

비동기 프로그래밍은 Future, Promise 및 Async-Await와 같은 추상화된 기능들을 이용하여 동시성 프로그래밍을 하는 방법이다. 마찬가지로 비동기 프로그래밍을 사용한다고 해서 꼭 병렬처리 및 멀티쓰레딩인 것은 아니다.

  • 즉 동시성 프로그래밍이란, 멀티스레딩환경에서의 시분할 프로그래밍 기법이라고 생각하면 된다.
반응형