Concurrency Programming
동시성(Concurrency) 프로그래밍, 병렬(Parallelism) 프로그래밍은 어떻게 다르며, 우리가 주로 접할 iOS 환경에서는 무엇을 더 고려해봐야 할까
동시성 프로그래밍 :
CPU의 코어수를 활용하기 위해 스레드를 이용하여 여러가지 일을 동시에 작업하는 프로그래밍
병렬 프로그래밍 :
프로그램을 동시에 실행시키지만 연속된 프로세서 타임을 필요로하지 작업을 수행하는 프로그래밍
물리적으로 코어가 여러개 있을때, 각 코어들이 실제로 동시에 작업을 처리하는 것
멀티코어 CPU가 보급되면서 현재 iOS 환경에서는 애플리케이션이 많은 작업을 하지만 일부의 코어만 사용하고 있어 낭비되는 자원을 활용하기 위해 동시성 프로그래밍을 더 고려해야한다.
동시성 프로그래밍, 병렬 프로그래밍, 동기(synchronous)와 비동기(asynchronous)의 개념은 어떤 상관관계를 가질까?