기술면접

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

하루우울루 2025. 1. 20. 09:48

동시성은 이름 그대로 동시에 여러 작업을 수행하는 게 아니라, 논리적으로 동시에 실행되는 것처럼 보이게 만드는 것이다. 

단이 코어를 시간 분할을 통해 스레드를 번갈아 가며 실행해 마치 여러 작업이 동시에 실행되는 것처럼 보이게 된다.

 

사용자의 입력을 기다리거나, 네트워크 요청, 파일 입출력 등의 I/O 작업 시에 CPU가 유휴 상태로 대기한다. 이때 CPU가 아무것도 하지 않을 때 다른 스레드의 작업을 처리할 수 있다. 

 

병렬성은 물리적으로 동일한 시간에 여러 작업을 할 수 있다.

여러 개의 코어가 독립된 스레드의 작업을 동시에 처리해서 여러 작업이 동시에 실행된다. 

작업 시간을 최소화할 수 있지만, 병렬 처리는 데이터나 리소스를 공유할 때 작업 간 동기화가 필요한 경우가 많아 동기화로 인해 오버헤드가 발생할 수 있다.