동시성 대 병렬성 (Concurrency vs Parallelism)

도서 요약 - C# 으로 쓰는 함수형 프로그래밍, 엔리코 붜나노 - :thread: Slog - 닷넷데브

마침 3 장에 관련 내용이 나옵니다.

책의 저자는 동시성을 아래와 같이 설명합니다.

동시성: 복수의 태스크의 시간 창이 겹쳐진 상태.

비동시성

 |---A---| |-----B-----| |--C--|

동시성

|---A---| 
|-----B-----|
|--C--|

동시성이 유발되는 프로그래밍 기법

  • 비동기 처리
    하나의 태스크가 종료되기를 기다리지 않고 다른 태스크를 수행.
    한 시점에 복수의 태스크가 동시에 실행됨.
    주로 I/O 바운드 태스크.

  • 병렬 처리
    태스크를 쪼개서 여러 CPU 코어에 분산 실행.
    한 시점에 복수의 부분 태스크가 동시에 실행됨.

  • 멀티 스레딩
    여러 스레드가 동시에 실행되는 것처럼 보이는 소프트웨어 기법.
    한 시점에 하나의 스레드만 실행됨.

5개의 좋아요