뮤텍스 : 뮤텍스는 화장실에 들어가기 위한 열쇠로 비유할 수 있습니다. 즉 화장실에 들어갈 수 있는 열쇠를 한 사람이 갖고 있다면, 한 번에 열쇠를 갖고 있는 그 한 사람만이 들어갈 수 있습니다. 화장실에 열쇠를 갖고 있는 사람이 들어가 볼일을 다 본 후에는 줄을 서서 기다리고 있는(대기열-큐) 다음 사람에게 열쇠를 주게 됩니다.
공식적인 정의(심비안 개발자 라이브러리에서 발췌) : 뮤텍스는 한 번에 하나의 쓰레드만이 실행되도록 하는 재 입장할 수 있는 코드 섹션에 직렬화된 접근이 가능하게 할 때 사용됩니다. 뮤텍스 객체는 제어되는 섹션에 하나의 쓰레드만을 허용하기 때문에 해당 섹션에 접근하려는 다른 쓰레드들을 강제적으로 막음으로써 첫 번째 쓰레드가 해당 섹션을 빠져나올 때까지 기다리도록 합니다.
씨샵에서는 System.Threading 를 통해 기본적으로 뮤텍스를 제공해줍니다.
사용법은 간단하구요
Program.cs에서 구현해주시면 됩니다.
아래는 예제코드입니다.
using System.Threading;
static class Program
{
/// <summary>
/// 해당 응용 프로그램의 주 진입점입니다.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//뮤텍스 > 중복실행 방지
String mtxName = "testName";
Boolean mtxSuccess;
Mutex mtx = new Mutex(true, mtxName, out mtxSuccess);
if (!mtxSuccess)
{
MessageBox.Show("이미실행중입니다.");
return;
}
//실제 프로세스 구현해주시면됩니다.
mtx.ReleaseMutex();
}
'C#, C++, C' 카테고리의 다른 글
c# 프로그램 만료일자 설정 (1) | 2015.09.24 |
---|---|
c# USB Serial Number (고유번호 가져오기, 특정 USB에서만 작동하게하기) (1) | 2015.09.24 |
C# AES 암호화 / 복호화 예제 소스 코드 (3) | 2014.07.08 |
댓글