[c#] C# 스레드 뮤텍스

C#에서 스레드 간 동기화를 위해 뮤텍스(mutex)를 사용할 수 있습니다. 뮤텍스는 여러 스레드가 공유 자원에 안전하게 접근할 수 있도록 도와주는 동기화 메커니즘입니다.

뮤텍스 생성 및 사용

뮤텍스를 생성하고 사용하는 방법은 다음과 같습니다.

using System;
using System.Threading;

class Program
{
    static Mutex mutex = new Mutex();

    static void Main()
    {
        Thread thread1 = new Thread(DoWork);
        Thread thread2 = new Thread(DoWork);

        thread1.Start();
        thread2.Start();

        thread1.Join();
        thread2.Join();

        mutex.Dispose();
    }

    static void DoWork()
    {
        mutex.WaitOne();
        // 뮤텍스 보호 영역 안에서 작업 수행
        mutex.ReleaseMutex();
    }
}

위의 예제 코드에서 Mutex 클래스를 사용하여 뮤텍스를 생성하고, WaitOne 메서드로 뮤텍스에 대한 신호를 기다리고, ReleaseMutex 메서드로 뮤텍스를 해제합니다.

뮤텍스 사용 시 주의할 점

이렇게 C#에서 뮤텍스를 사용하여 스레드 간 동기화를 구현할 수 있습니다.

참고 자료