동기화를 사용하여 다중 스레드 응용 프로그램의 리소스에 대한 액세스를 동기화합니다.
스레드 동기화를 위한 뮤텍스
뮤텍스를 사용하여 프로세스 간에 스레드를 동기화할 수 있습니다. 한 번에 둘 이상의 스레드에서 코드 블록을 동시에 실행하는 것을 방지하는 데 사용합니다.
C# 잠금 문은 다른 스레드의 방해 없이 코드 블록이 실행되도록 하는 데 사용됩니다. 코드 블록 기간 동안 지정된 개체에 대해 상호 배제 잠금이 획득됩니다.
잠금 문은 개체를 인수로 가져옵니다. "lock"에 주어진 매개변수는 참조 유형을 기반으로 하는 객체여야 합니다 -
public class Demo { private System.Object myLock = new System.Object(); public void Process() { lock (myLock) { } } }
C#의 Mutex 클래스는 프로세스 간 동기화에도 사용할 수 있는 동기화 기본 요소입니다.
새로운 뮤텍스를 만드는 방법을 살펴보겠습니다 -
private static Mutex m = new Mutex();