[c#] C# 스레드 풀
C#에서는 스레드 풀을 활용하여 간단한 방식으로 스레드를 관리할 수 있습니다. 스레드 풀은 여러 작업을 처리하기 위해 미리 생성하고 유지하는 스레드의 집합입니다. 스레드 풀을 사용하면 스레드를 반복적으로 생성하고 소멸하는 오버헤드를 피할 수 있습니다. C#에서는 System.Threading.ThreadPool
클래스를 사용하여 스레드 풀을 관리합니다.
스레드 풀 사용하기
using System;
using System.Threading;
class Program
{
static void Main()
{
// 스레드 풀에 작업을 전달
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), null);
}
static void DoWork(object state)
{
// 작업 수행
Console.WriteLine("Working on a thread from thread pool");
}
}
위의 예제는 ThreadPool.QueueUserWorkItem
메서드를 사용하여 스레드 풀에 작업을 전달하고, DoWork
메서드를 스레드 풀에서 실행하는 방법을 보여줍니다.
주의사항
- 스레드 풀을 사용할 때는 작업이 빠르게 완료되도록 해야 합니다. 오랜 시간이 소요되는 작업을 스레드 풀에 전달하면 다른 작업들의 실행이 지연될 수 있습니다.
- 스레드 풀에 작업을 추가하면 시스템이 스레드를 선택하고 실행하는 것을 제어할 수 없습니다.
참고 자료
- Microsoft Docs: 스레드 풀
- C# 도움말: 스레드 풀 사용하기