본문 바로가기
반응형

스레드3

C# Web API 구조 - 비동기, 멀티스레드, 쓰레드 풀 C# Web API의 구조에 대해서C# Web API은 비동기, 멀티스레드, 스레드 풀을 다 사용한다. 비동기, 멀티스레드, 쓰레드 풀을 사용하면 애플리케이션의 성능, 응답성, 확장성을 크게 향상할 수 있기 때문이다. 각 개념의 장점과 이를 사용할 때의 이점에 대해서 알아보자.비동기(Asynchronous)비동기 프로그래밍은 작업이 완료될 때까지 스레드가 대기하지 않고, 그동안 다른 작업을 처리할 수 있도록 하는 방식이다.C#이 제공하는 async/await 패턴을 사용하여 CPU 사용률을 최적화 할 수 있다.높은 처리량 : CPU가 대기 중인 작업을 처리하는 대신 다른 작업을 수행I/O 작업 최적화 : 비동기 방식은 CPU를 차단하지 않고, 네트워크 요청 또는 파일 읽기/쓰기를 기다리는 동안 다른 작업.. 2025. 1. 3.
C# 비동기 프로그래밍으로 반응성 개선하기 반응형 응용 프로그램 개발 .NET 프레임워크 발표 당시에는 순차적으로 실행되는 프로그램 흐름을 따랐다. 이런 실행 흐름은 다음 작업을 실행하기 전에 무조건 현재 진행 중인 작업이 끝나야 한다는 단점을 갖는다. 이로 인해 프로그램이 멈춘 것처럼 보이는 등 사용자에게 좋지 않은 인상을 주게 된다. .NET 프레임워크는 이 문제점을 해소하려는 목적으로 운영체제가 독자적으로 스케줄링할 수 있는 최소 실행 단위인 스레드를 도입했다. 비동기(asynchronous) 프로그래밍이란 독립된 스레드가 특정 작업을 처리하게 함으로써 원래의 스레드가 멈추는 것을 막고 다른 작업들을 처리할 수 있게 하는 것이다. 동기식 프로그램 실행 먼저 모든 작업을 동기적으로 수행하는 프로그램을 만들어보는 것부터 시작하자. static .. 2024. 4. 11.
스레드(Thread)란 스레드(Thread)란?오늘날의 운영체제들은 프로세스를 효율적으로 사용하고, 작업의 유연성을 얻기 위해 멀티스레드를 지원한다.스레드의 정의프로세스가 생성되면 CPU 스케줄러는 프로세스가 해야 할 일을 CPU에 전달하고, 실제 작업은 CPU가 수행한다. 이때 CPU 스케줄러가 CPU에 전달하는 일 하나가 스레드이다. 그러므로 CPU가 처리하는 작업 단위는 프로세스로부터 전달받은 스레드인 것이다. 운영체제의 입장에서 작업 단위는 프로세스이고, CPU입장에서의 작업 단위는 스레드인 것이다.따라서 프로세스 입장에서는 스레드를 다음과 같이 정의할 수 있다. 스레드 : 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위.작업(job)의 크기크기 순서로 나열하면 다음과 같다.Thread(ope.. 2023. 7. 31.