칩 제조사들은 cpu의 클럭 스피드를 올리는 것으로는 더 이상 물리적 한계에 부딪히게 되어 코어를 증가시키는 쪽으로 성능을 올렸습니다.
그렇기 때문에 성능 좋은 큰 프로그램을 만들려면 여러 개의 코어가 동시에 작업을 수행할 수 있도록 하는 병렬 처리 기법과 비동기 처리 기법이 필수가 되었죠.
그러나 병렬 처리와 비동기 처리는 말이 좋지, 막상 소프트웨어로 구현하려 들면 간단하지 않습니다.
여기서 잠깐
★ 병렬 처리와 비동기 처리의 차이
병렬 처리와 비동기 처리는 비슷한 용어 같지민 듯이 엄밀히 다릅니다. 하나의 작업을 여러 작업자가 나눠서 수행한 뒤 다시 하나의 결과로 만드는 것을 병렬 처리 합니다. 이에 비해 비동기 처리는 작업 A를 시작한 후 A의 결과가 나올 때까지 마냥 대기하는 대신 곧이어 다른 작업 B, C. D… 를 수행하다가 작업 A가 끝나면 그 때 결과를 받아내는 처리 방식을 말합니다.
마이크로소프트는 이러한 상황이 소프트웨어 개발 패러다임에 중요한 전환점이 될 것임을 인지하고 자사의 소프트웨어를 이에 대응시키는 한편, 자사의 개발 도구를 이용하는 프로그래머들이 이 변화 에 편안하게 적응할 수 있도록, 더 쉽게 비동기 코드를 작성할 수 있도록 하는 도구와 장치를 준비했 습니다.
System. Threading.Tasks 네임스페이스의 클래스들과 async 한정자와 await 연산자가 바로 그것입니다.
.NET 프레임워크 4.0부터 도입된 System. Threading.Tasks 네임스페이스에는 병행성 코드나 비동기 코드를 개발자들이 손쉽게 작성할 수 있도록 돕는 여러 가지 클래스가 있습니다.
그 중에서 우리는 지금부터 Task와 Task <TResult〉, 그리고 Parallel 클래스를 살펴볼 것입니다.
task가 있으면 그러면 스레드(thread)는 뭐야 하고 의문을 가지신 분들을 위해
chatgpt에게 한번 물어봤는데 생각보다 정확하게 요약을 잘해줬습니다.

bing AI 한테도 물어보니 얘는 내부 실행 동작을 자세히 알려주네요
밑에 AI의 대답처럼 Task 클래스는 내부적으로Thread로 구현되어있습니다.

2023.03.27 - [C# 프로그래밍] - [C#] task (2)
[C#] task (2)
2023.03.27 - [C# 프로그래밍] - [C#] Task (1) [C#] Task (1) 칩 제조사들은 cpu의 클럭 스피드를 올리는 것으로는 더 이상 물리적 한계에 부딪히게 되어 코어를 증가시키는 쪽으로 성능을 올렸습니다. 그렇
onesside-world.tistory.com
2023.03.28 - [C# 프로그래밍] - [C#] async 한정자와 await 연산자
[C#] async 한정자와 await 연산자
async 한정자 async 한정자는 메소드, 이벤트 처리기, 태스크, 람다식 등을 수식합니다. C# 컴파일러가 async 한전자로 수식한 코드의 호출자를 만날 때 호출 결과를 기다리지 않고 바로 다음 코드로
onesside-world.tistory.com
'C# 프로그래밍' 카테고리의 다른 글
[C#] async 한정자와 await 연산자 (0) | 2023.03.28 |
---|---|
[C#] task (2) (0) | 2023.03.27 |
[C#] Action 대리자와 Func 대리자 (0) | 2023.03.16 |
[C#] 스레드 사용법(2) (0) | 2023.03.14 |
프로세스와 스레드에 대한 이론 정리글(2) (0) | 2023.03.13 |