동시성은 여러 일을 한꺼번에 다루는 것이고, 병렬성은 여러 일을 한꺼번에 실제로 하는 것입니다. 동시성은 여러 작업이 교차 실행(interleaving)을 통해 진전을 이루도록 프로그램을 구조화하는 방식이고, 병렬성은 실제로 여러 코어에서 그것들을 동시에 실행하는 것입니다.
동작 방식
단일 CPU 코어는 동시적일 수는 있지만 병렬적일 수는 없습니다: 작업 사이를 빠르게 전환하므로, 어느 순간에도 하나만 실행되지만 시간상으로는 겹칩니다. 병렬성은 여러 코어가 같은 순간에 명령을 실행해야 합니다.
text
Concurrency (1 core, interleaved): A--B--A--B--A--B
Parallelism (2 cores, simultaneous): A--A--A--A
B--B--B--B
