[c#] C# 스레드 관리

C# 에서 멀티스레딩을 사용하여 병렬 처리를 구현하는 방법에 대해 알아보겠습니다.

스레드 생성과 실행

C#에서 스레드를 생성하려면 System.Threading 네임스페이스를 사용합니다. 다음은 스레드를 생성하고 실행하는 간단한 예제입니다.

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        Thread newThread = new Thread(ThreadMethod);
        newThread.Start();
    }

    static void ThreadMethod()
    {
        Console.WriteLine("새로운 스레드에서 실행됩니다.");
    }
}

스레드 동기화

여러 스레드가 공유 자원에 접근할 때 문제가 발생할 수 있습니다. 이를 해결하기 위해 뮤텍스, 세마포어, 락 등과 같은 동기화 메커니즘을 사용할 수 있습니다. 예를 들어, lock 키워드를 사용하여 코드 블럭을 동기화할 수 있습니다.

class Program
{
    static object lockObject = new object();
    static int sharedValue = 0;

    static void IncrementSharedValue()
    {
        lock (lockObject)
        {
            sharedValue++;
        }
    }
}

스레드 풀

C#에서는 스레드 풀을 사용하여 스레드를 재사용하고 병렬 작업을 관리할 수 있습니다. ThreadPool 클래스를 사용하여 스레드 풀에 작업을 제출할 수 있습니다.

class Program
{
    static void Main()
    {
        ThreadPool.QueueUserWorkItem(ThreadMethod, "작업 데이터");
    }

    static void ThreadMethod(object state)
    {
        Console.WriteLine($"스레드 풀에서 실행됩니다. 데이터: {state}");
    }
}

C#에서 스레드를 효과적으로 관리하여 병렬 처리를 구현하는 방법에 대해 알아보았습니다.

더 많은 정보는 Microsoft 공식 문서를 참고하세요.