동시성 프로그래밍을 이해하기 위해 알아야 할 사전 지식에 대해 알아보자

📖병렬 vs 동시

📎병렬 프로그래밍

두 개 이상의 프로세서가 각자 작업을 맡아 동시에 처리하는 개념

📎동시성 프로그래밍

하나의 프로세서가 여러 개의 작업을 왔다갔다 하며 동시에 처리하는 개념

📖동기(Synchronous) vs 비동기(Asynchronous) ദ്ദിᐢ•ᗜ•ᐢ₎ go go

작업의 결과값(return 값)과 순서에 관련된 개념

📎동기(Synchronous)

작업을 다른 쓰레드에서 하도록 시킨 후 , 작업이 끝날 때까지 기다렸다가 다음 작업 진행

  • 동시성 프로그래밍에서 수행할 일 거의 X

📎비동기(Asynchronous)

작업을 다른 쓰레드에서 하도록 시킨 후 , 작업이 끝나는 것을 기다리지 않고 다음 작업 진행

📖직렬(Serial) vs 동시(Concurrent)

큐의 특성에 관련된 개념

📎직렬(Serial)

(보통 메인에서) 분산 처리시킨 작업을 다른 한 개의 쓰레드에서 처리하는 큐

  • 순서적으로 작업을 처리할 수 밖에 없음 → 순서가 중요한 작업을 처리할 때 사용

📎동시(Concurrent)

(보통 메인에서) 분산 처리시킨 작업을 다른 여러 개의 쓰레드에서 처리하는 큐

  • 각자 독립적이지만 유사한 여러 개의 작업(중요도, 작업의 성격 등)을 처리할 때 사용

위 내용을 바탕으로 다음 노트에서 iOS에서의 동시성 프로그래밍의 배경에 대해 알아보자