Concurrency(동시성)에 대해서

2022. 11. 30. 19:37면접준비

1. 동시성 프로그래밍 / 병렬 프로그래밍

  • 동시성 프로그래밍(Concurrency)
  • 병렬 프로그래밍(Parallism)

2. 동기 / 비동기

  • 동기
  • 비동기

3. 하드웨어의 스레드 / 소프트웨어의 스레드

  • 하드웨어의 스레드
  • 소프트웨어의 스레드

4. 동시성 프로그래밍, 병렬 프로그래밍, 동기, 비동기의 개념은 어떤 상관관계를 가질까요?

  • 동시성 프로그래밍과 병렬성 프로그래밍 모두 비동기(Asynchronous)동작을 구현할 수 있지만, 그 동작 원리가 다르다. 동시성은 싱글코어 및 멀티코어에서 모두 구현할 수 있지만, 병렬성은 멀티 코어에서만 구현할 수 있다.
  • 동시성 또는 병렬 프로그래밍을 활용하지 않고, 하나의 스레드로 모든 작업을 진행하게 되면, 하나의 스레드는 번에 하나의 일만 처리할 있으므로, 모든 작업들이 동기적으로 수행됩니다. 하지만 동시성 또는 병렬 프로그래밍을 활용하여 여러개의 스레드로 동시에 여러 작업을 처리함으로써, 여러 작업들의 비동기적 실행이 가능해집니다.