정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Mutex 클래스

2013-12-13

프로세스 간 동기화에 사용할 수도 있는 동기화 기본 형식입니다.

Namespace:  System.Threading
어셈블리:  mscorlib(mscorlib.dll)

public sealed class Mutex : WaitHandle

Mutex 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드Mutex()기본 속성을 사용하여 Mutex 클래스의 새 인스턴스를 초기화합니다.
Public 메서드Mutex(Boolean)호출한 스레드가 뮤텍스의 초기 소유권을 가져야 할지 여부를 나타내는 부울 값을 사용하여 Mutex 클래스의 새 인스턴스를 초기화합니다.
Public 메서드Mutex(Boolean, String)호출한 스레드가 뮤텍스의 초기 소유권 및 뮤텍스의 이름인 문자열을 가져야 할지 여부를 나타내는 부울 값을 사용하여 Mutex 클래스의 새 인스턴스를 초기화합니다.
Public 메서드Mutex(Boolean, String, Boolean)보안 중요 호출한 스레드가 뮤텍스의 초기 소유권을 가져야 할지 여부를 나타내는 부울 값, 뮤텍스의 이름인 문자열 및 메서드에서 반환할 때 호출한 스레드에 뮤텍스의 초기 소유권이 부여되었는지 여부를 나타내는 부울 값을 사용하여 Mutex 클래스의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 속성SafeWaitHandle네이티브 운영 체제 핸들을 가져오거나 설정합니다. (WaitHandle에서 상속됨)
맨 위

  이름설명
Public 메서드Close파생 클래스에서 재정의될 때 현재 WaitHandle에서 보유한 모든 리소스를 해제합니다. (WaitHandle에서 상속됨)
Public 메서드Dispose()WaitHandle 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다. (WaitHandle에서 상속됨)
Protected 메서드Dispose(Boolean)파생 클래스에서 재정의된 경우 WaitHandle에서 사용하는 관리되지 않는 리소스를 해제하고 필요에 따라 관리되는 리소스를 해제합니다. (WaitHandle에서 상속됨)
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 확인합니다. (Object에서 상속됨)
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버OpenExisting보안 중요 지정된 명명된 뮤텍스가 이미 있는 경우 엽니다.
Public 메서드ReleaseMutexMutex를 한 번 해제합니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드정적 멤버TryOpenExisting보안 중요 지정된 명명된 뮤텍스가 이미 있는 경우 열고 작업의 성공 여부를 나타내는 값을 반환합니다.
Public 메서드WaitOne()현재 WaitHandle이 신호를 받을 때까지 현재 스레드를 차단합니다. (WaitHandle에서 상속됨)
Public 메서드WaitOne(Int32)부호 있는 32비트 정수를 사용하여 시간 간격을 지정하고 현재 WaitHandle이 신호를 받을 때까지 현재 스레드를 차단합니다. (WaitHandle에서 상속됨)
Public 메서드WaitOne(TimeSpan)TimeSpan을 사용하여 시간 간격을 측정하면서 현재 인스턴스가 신호를 받을 때까지 현재 스레드를 차단합니다. (WaitHandle에서 상속됨)
맨 위

두 개 이상의 스레드가 동시에 공유 리소스에 액세스해야 할 경우에는 시스템에 한 번에 하나의 스레드만 리소스를 사용하도록 보장하기 위한 동기화 메커니즘이 필요합니다. Mutex는 한 스레드만을 공유한 리소스에 단독 액세스를 부여하는 기본 동기화입니다. 스레드가 뮤텍스를 가져오면 첫 번째 스레드가 뮤텍스를 해제할 때까지 해당 뮤텍스를 가져오려는 두 번째 스레드는 일시 중단됩니다.

Mutex 클래스는 스레드 ID를 적용하므로 뮤텍스는 해당 뮤텍스를 가져온 스레드에서만 해제할 수 있습니다.

뮤텍스를 소유하고 있는 동안 스레드가 종료되면 뮤텍스가 중단됩니다. 뮤텍스 상태는 신호 받음으로 설정되고 대기 중인 다음 스레드가 소유권을 갖습니다.

주의주의:

중단된 뮤텍스는 코드의 심각한 오류를 나타내는 경우가 많습니다. 뮤텍스를 해제하지 않고 스레드를 종료하면 뮤텍스가 보호하는 데이터 구조의 상태에 일관성이 없을 수 있습니다. 데이터 구조의 무결성을 확인할 수 있으면 뮤텍스의 소유권을 요청하는 다음 스레드가 이 예외를 처리한 다음 계속할 수 있습니다.

시스템 수준 뮤텍스가 중단된 경우 응용프로그램이 갑자기 종료되었을 수 있습니다.

뮤텍스는 명명되지 않은 로컬 뮤텍스와 명명된 시스템 뮤텍스 등 두 가지 종류가 있습니다. 로컬 뮤텍스는 프로세스 안에만 존재하며 프로세스에서 뮤텍스를 나타내는 Mutex 개체에 대한 참조가 있는 모든 스레드에서 사용할 수 있습니다. 명명되지 않은 각 Mutex 개체는 개별 로컬 뮤텍스를 나타냅니다.

명명된 시스템 뮤텍스는 운영 체제 전체에서 볼 수 있으며 프로세스 작업을 동기화하는 데 사용할 수 있습니다. 이름을 받아들이는 생성자를 사용하면 명명된 시스템 뮤텍스를 나타내는 Mutex 개체를 만들 수 있습니다. 이때 운영 체제 개체가 동시에 만들어질 수도 있고, Mutex 개체를 만들기 전에 운영 체제 개체가 존재할 수도 있습니다. 같은 명명된 시스템 뮤텍스를 나타내는 Mutex 개체를 여러 개 만들 수 있습니다.

버전 메모

Windows Phone

 Mutex는 Windows Phone에서만 지원됩니다.

Windows Phone OS

지원되는 버전: 8.0, 7.1

Windows Phone

이 형식은 스레드로부터 안전합니다.

표시: