동시성과 병렬성

숭맹이·2024년 12월 10일

동시성(Concurrency)란 무엇인가?

동시성은 여러 작업을 동시에 진행할 수 있도록 설계된 시스템의 능력을 의미합니다. 중요한 점은 "실제 병렬 실행"이 반드시 필요하지는 않다는 것입니다. 동시성은 여러 작업이 "진행 중"인 상태를 나타냅니다. 예를 들어, 멀티스레딩은 동시성을 구현하는 일반적인 방법 중 하나입니다.

동시성의 특징

  • 여러 작업이 동일한 시간 간격에 걸쳐 번갈아 가며 실행됨
  • CPU 코어 수보다 많은 작업을 처리 가능
  • 스케줄링을 통해 자원을 최적화함

동시성의 장점

  • 사용자 경험 향상 (예: UI 스레드와 작업 스레드 분리)
  • I/O 작업 최적화

병렬성(Parallelism)란 무엇인가?

병렬성은 여러 작업이 물리적으로 동시에 실행되는 것을 의미합니다. 이는 멀티코어 프로세서를 활용하여 작업을 병렬로 나누어 처리하는 방식입니다. 병렬성은 주로 데이터 처리 속도를 높이는 데 사용됩니다.

병렬성의 특징

  • 여러 작업이 동시에 실행됨
  • CPU 코어 수와 비례하여 성능이 증가
  • 데이터 분할과 동기화가 중요함

병렬성의 장점

  • 데이터 처리량 증가
  • 계산 집약적인 작업의 성능 개선

동시성과 병렬성의 주요 차이점

특성동시성병렬성
실행 방식작업이 번갈아 실행됨작업이 물리적으로 동시에 실행됨
필요 조건단일 또는 멀티코어에서 가능멀티코어 필수
주요 목적자원 최적화성능 향상

동시성과 병렬성 구현 방법

동시성 구현 방법

  1. 멀티스레딩(Multithreading)
  2. 이벤트 루프(Event Loop)
  3. 코루틴(Coroutines)

병렬성 구현 방법

  1. 멀티프로세싱(Multiprocessing)
  2. GPU 컴퓨팅(GPU Computing)
  3. 분산 컴퓨팅(Distributed Computing)
profile
Backend Developer

0개의 댓글