동시성 프로그래밍을 이해하기 위해 알아야 할 사전 지식에 대해 알아보자
📖병렬 vs 동시

📎병렬 프로그래밍
두 개 이상의 프로세서가 각자 작업을 맡아 동시에 처리하는 개념
📎동시성 프로그래밍
하나의 프로세서가 여러 개의 작업을 왔다갔다 하며 동시에 처리하는 개념
📖동기(Synchronous) vs 비동기(Asynchronous) ദ്ദിᐢ•ᗜ•ᐢ₎ go go
작업의 결과값(return 값)과 순서에 관련된 개념

📎동기(Synchronous)
작업을 다른 쓰레드에서 하도록 시킨 후 , 작업이 끝날 때까지 기다렸다가 다음 작업 진행
- 동시성 프로그래밍에서 수행할 일 거의 X
📎비동기(Asynchronous)
작업을 다른 쓰레드에서 하도록 시킨 후 , 작업이 끝나는 것을 기다리지 않고 다음 작업 진행
📖직렬(Serial) vs 동시(Concurrent)
큐의 특성에 관련된 개념

📎직렬(Serial)
(보통 메인에서) 분산 처리시킨 작업을 다른 한 개의 쓰레드에서 처리하는 큐
- 순서적으로 작업을 처리할 수 밖에 없음 → 순서가 중요한 작업을 처리할 때 사용
📎동시(Concurrent)
(보통 메인에서) 분산 처리시킨 작업을 다른 여러 개의 쓰레드에서 처리하는 큐
- 각자 독립적이지만 유사한 여러 개의 작업(중요도, 작업의 성격 등)을 처리할 때 사용