동시성과 병렬성 / 동기 비동기

동시성(Concurrency)과 병렬성(Parallelism)

동시성과 병렬성 차이

컴퓨터의 CPU는 하나의 작업밖에 하지 못한다. 따라서 데이터는 CPU가 context switch 작업을 할때마다 변경되지만 실제 컴퓨터에서는 우리가 인지하지 못 할 정도로 빠르게 동작합니다.

많은 개발자들이 "동시성과 병렬성은 동시에 실행하는 것을 의미한다"고 생각하는데 큰 차이점이 있습니다.

동시성은 하나의 코어가 두가지 이상의 일을 번갈이 가며 수행하는 반면, 병렬성은 코어 하나가 하나의 일을 한다. 그러나 코어가 여러개라서 여러일을 동시에 수행할 수 있는 것을 뜻한다.

https://t1.daumcdn.net/cfile/tistory/995359405FBBB9591C

동시성은 2개의 작업을 번갈아 수행해야하기 때문에 Context Switch가 일어난다.

동시성 병렬성
정의 동일한 코어에서 여러 작업을 실행합니다. 다른 코어에서 여러 작업을 실행합니다.
목표 자원에 제한없이 동시에 실행되는 것 같은 느낌을 준다. 자원을 활용하여 실제로 동시에 일을 시킨다.
설계 소프트웨어 설계: 협력 방식으로 독립적으로 실행되는 계산의 구성한다. 하드웨어 설계: 계산을 병렬로 실행한다.
자원 활용 가볍다. 부담된다. (듀얼 코어, 쿼드 코어)

코어 1개 Vs 코어 3개

코어 1개 Vs 코어 3개