[C# 동시성 프로그래밍] - 동시성 프로그래밍 개념 정리

참고

  • C# 동시성 프로그래밍

동시성이란?

  • C# 프로그래밍에서 동시성이란 한 번에 두 가지 이상의 작업을 수행 하는 것을 의미합니다.
  • 대부분의 개발자는 동시성 이라는 단어를 들으면 멀티스레딩 을 생각합니다.
  • 하지만, 이 두가지의 개념은 구별해야 합니다.

멀티스레딩이란?

  • 멀티스레딩이란? 다수의 실행 스레드를 사용하는 동시성의 한 형태를 의미합니다.
  • 멀티스레딩은 말 그대로 다수의 스레드를 사용한다는 뜻 입니다.
  • 멀티스레딩은 동시성의 한 형태일뿐 유일한 형태가 아닙니다.

병렬 처리란?

  • 병렬 처리란 많은 작업을 여러 스레드에 나눠서 동시에 수행하는 것을 의미합니다.
  • 병렬 처리 또는 병렬 프로그래밍은 멀티스레딩을 사용해서 멀티 코어 프로세서를 최대한 활용하는 방법입니다.
  • 요즘 CPU는 코어가 여러개 이고, 해야할 작업이 많을 때 하나의 코어에 모든 일을 맡기고 다른 코어를 쉬게 두면 비효율 적입니다.
  • 병렬 처리는 작업을 나눠서 각각 다른 코어에서 독립적으로 실행할 수 있는 여러 스레드에 맡깁니다.
  • 병렬 처리는 멀티스레딩의 한 형태이고, 멀티스레딩은 동시성의 한 형태입니다.

비동기 프로그래밍이란?

  • 비동기 프로그래밍이란 불필요한 스레드의 사용을 피하려고 퓨처나 콜백을 사용하는 동시성의 한 형태를 의미합니다.
  • 퓨처 또는 프로미스는 나중에 완료될 연산을 나타내는 형식입니다.
  • 닷넷의 최신 퓨처 형식으로는 Task와 Task 가 있습니다.
  • 비동기 프로그래밍은 나중에 완료되는 연산인 비동기 연산이라는 개념에 중점을 두고 있습니다.
  • 비동기 연산은 진행하는 동안 원래 스레드를 가로막지 않습니다.
  • 즉 해당 연산을 시작한 스레드는 자유롭게 다른 작업을 할 수 있습니다.
  • 연산이 끝나면 퓨처에 알리거나 콜백 또는 이벤트를 실행해서 애플리케이션에 연산이 끝났음을 알립니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY