[C# 동시성 프로그래밍] - 동시성 프로그래밍 개념 정리
- C#/C# 문법
- 2022. 5. 7. 21:20
참고
- C# 동시성 프로그래밍
동시성이란?
- C# 프로그래밍에서 동시성이란 한 번에 두 가지 이상의 작업을 수행 하는 것을 의미합니다.
- 대부분의 개발자는 동시성 이라는 단어를 들으면 멀티스레딩 을 생각합니다.
- 하지만, 이 두가지의 개념은 구별해야 합니다.
멀티스레딩이란?
- 멀티스레딩이란? 다수의 실행 스레드를 사용하는 동시성의 한 형태를 의미합니다.
- 멀티스레딩은 말 그대로 다수의 스레드를 사용한다는 뜻 입니다.
- 멀티스레딩은 동시성의 한 형태일뿐 유일한 형태가 아닙니다.
병렬 처리란?
- 병렬 처리란 많은 작업을 여러 스레드에 나눠서 동시에 수행하는 것을 의미합니다.
- 병렬 처리 또는 병렬 프로그래밍은 멀티스레딩을 사용해서 멀티 코어 프로세서를 최대한 활용하는 방법입니다.
- 요즘 CPU는 코어가 여러개 이고, 해야할 작업이 많을 때 하나의 코어에 모든 일을 맡기고 다른 코어를 쉬게 두면 비효율 적입니다.
- 병렬 처리는 작업을 나눠서 각각 다른 코어에서 독립적으로 실행할 수 있는 여러 스레드에 맡깁니다.
- 병렬 처리는 멀티스레딩의 한 형태이고, 멀티스레딩은 동시성의 한 형태입니다.
비동기 프로그래밍이란?
- 비동기 프로그래밍이란 불필요한 스레드의 사용을 피하려고 퓨처나 콜백을 사용하는 동시성의 한 형태를 의미합니다.
- 퓨처 또는 프로미스는 나중에 완료될 연산을 나타내는 형식입니다.
- 닷넷의 최신 퓨처 형식으로는 Task와 Task
가 있습니다. - 비동기 프로그래밍은 나중에 완료되는 연산인 비동기 연산이라는 개념에 중점을 두고 있습니다.
- 비동기 연산은 진행하는 동안 원래 스레드를 가로막지 않습니다.
- 즉 해당 연산을 시작한 스레드는 자유롭게 다른 작업을 할 수 있습니다.
- 연산이 끝나면 퓨처에 알리거나 콜백 또는 이벤트를 실행해서 애플리케이션에 연산이 끝났음을 알립니다.
728x90
'C# > C# 문법' 카테고리의 다른 글
[C#] C# Mapster 사용법 (0) | 2022.05.11 |
---|---|
[C# 동시성 프로그래밍] - 일정 시간 동안 일시 정지 (0) | 2022.05.08 |
[C# 문법] C# StringBuilder 성능 개선 (0) | 2022.04.28 |
[C# 문법] .NET 콘솔 서비스 - DockerFile, Imgae, Containger 생성하기 (0) | 2022.03.18 |
[C# 문법] C# 에서 Process로 Python 파일 실행하기 (0) | 2022.03.18 |
이 글을 공유하기