동시성과 병렬성
🌹 정리 by 장미(https://velog.io/@newbiekim/)
한 코어에서 *여러 스레드를 빠르게 교차하면서 동시에 실행되는 것처럼 보이는 것.
*Context Switching
내가 지금 TV를 보고 있다고 가정하자.
그런데 TV를 보는 도중 카톡 알람이 울렸다.
이 때 나는 TV를 보다 카톡에 답장을 하고, 다시 TV를 보다 카톡을 했다.
이걸 계속 반복하면 다른 사람이 봤을 땐 동시에 두 가지 일을 하는 것처럼 보이지만, 사실 나는 TV를 볼 땐 TV만 보고, 카톡을 볼 땐 휴대폰만 본다.
즉, 짧은 시간 동안 왔다 갔다 하면서 일을 처리한다는 거다.
(→ 주어진 짧은 시간 동안 ‘한 가지 일(TV 보기)’을 처리하고 다음 시간엔 다른 ‘한 가지 일(카톡 하기)‘을 처리한다.)
Concurrency is about dealing with lots of things at once.
동시성은 한 번에 여러 가지 일을 다룬다.
멀티태스킹은 동시성을 만족한다.
싱글 코어에서, 프로세스에게 아주 짧은 타임 슬라이스를 주고 그 시간 동안 번갈아가며 일을 수행시킨다. 그렇게 함으로써 마치 동시에 여러 프로그램이 실행되는 것 같은 느낌을 주는 것이다.