[c#] C# 스레드 풀 큐

C#에서 스레드 풀을 사용하여 큐를 구현하는 방법에 대해 알아보겠습니다.

스레드 풀

스레드 풀은 다중 스레드 환경에서 작업을 분산하여 처리하기 위한 메커니즘입니다. .NET 프레임워크의 ThreadPool 클래스를 사용하면 풀에 있는 스레드를 재사용하여 작업을 처리할 수 있습니다.

스레드 풀 큐 만들기

아래는 C#에서 스레드 풀을 사용하여 큐를 구현하는 예제 코드입니다.

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        ThreadPool.QueueUserWorkItem(ProcessItem, "Task 1");
        ThreadPool.QueueUserWorkItem(ProcessItem, "Task 2");
        ThreadPool.QueueUserWorkItem(ProcessItem, "Task 3");

        Console.WriteLine("Main thread does some work, then sleeps.");
        Thread.Sleep(1000);
        Console.WriteLine("Exiting program...");
    }

    static void ProcessItem(object task)
    {
        Console.WriteLine($"Processing {task}");
        // 실제로 작업을 처리하는 코드를 여기에 추가
    }
}

위의 예제에서 ThreadPool.QueueUserWorkItem을 사용하여 큐에 작업을 추가하고, ProcessItem 메서드에서 작업을 처리합니다.

이 예제는 간단한 형태의 큐이지만, 실제 프로덕션 환경에서는 보다 안정적이고 복잡한 큐를 구현해야 할 수 있습니다.

결론

C#의 스레드 풀을 사용하여 큐를 구현하는 방법에 대해 살펴보았습니다. 스레드 풀을 이용하면 다중 스레드 환경에서 작업을 효율적으로 처리할 수 있으며, 큐를 사용하여 작업을 순차적으로 처리할 수 있습니다.

더 많은 정보를 원하시거나 궁금한 점이 있다면 .NET 공식 문서를 참고하시기 바랍니다.