다 중 스 레 드 프로 그래 밍 의 잠 금 (Mutex)

이 글 은 제 가 2009 년 6 월 10 일 에 작성 한 도 구 를 통 해 블 로그 원 에 있 는 블 로그 사이트 (http://chenxizhang.cnblogs.com) 동시에 온다.글 속 의 사진 주 소 는 여전히 블 로그 원 에 연결 되 어 있다.이에 특별히 설명 합 니 다!진 희 장 원문 주소:http://www.cnblogs.com/chenxizhang/archive/2008/09/09/1287468.html 다 중 스 레 드 프로 그래 밍 잠 금 (Mutex) 원문 발표: 2008 / 9 / 9 3: 50: 00
mutex 는 모니터 와 유사 합 니 다.그것 은 여러 스 레 드 가 특정한 시간 에 코드 블록 을 동시에 실행 하 는 것 을 방지한다.사실상 명칭 'mutex' 는 용어 '서로 배척 (mutually exclusive)' 의 약자 형식 이다.그러나 모니터 와 달리 mutex 는 크로스 프로 세 스 의 스 레 드 를 동기 화 할 수 있 습 니 다.mutex 는 Mutex 클래스 로 표 시 됩 니 다.
프로 세 스 간 동기 화 에 사용 할 때 mutex 는 'mutex' 라 고 부 릅 니 다. 다른 프로그램 에 사용 되 기 때문에 전역 변수 나 정적 변 수 를 통 해 공유 할 수 없습니다.두 프로그램 이 같은 mutex 대상 에 접근 할 수 있 도록 이름 을 지정 해 야 합 니 다.
mutex 는 프로 세 스 내 스 레 드 동기 화 에 사용 할 수 있 지만 Monitor 를 사용 하 는 것 이 바람 직 합 니 다. 모니터 는. NET Framework 를 위해 설계 되 었 기 때문에 자원 을 더욱 잘 이용 할 수 있 습 니 다.이에 비해 뮤 텍 스 류 는 Win 32 구조의 포장 이다.비록 mutex 는 모니터 보다 강하 지만 Monitor 류 에 비해 서로 조작 하고 전환 하 는 데 필요 한 계산 자원 을 더욱 소모 합 니 다.mutex 의 용법 예 시 는 Mutex 를 참조 하 십시오.
현실 작업 에서 우 리 는 Mutex 를 이용 하여 단일 인 스 턴 스 프로그램의 검 측 을 실현 할 수 있다.이것 은 사실 응용 프로그램 등급 에 대한 병행 제어 이다.
다음은 하나의 예 이다.
using System;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication1
{
    static class Program
    {
        ///  ///          。 /// 
        [STAThread]
        static void Main()
        {
            Mutex mutex = null;
            string mutexName = "WindowsApp";
            try
            {
                mutex = Mutex.OpenExisting(mutexName);
                if (mutex != null)
                {
                    MessageBox.Show("         ");
                    return;
                }
            }
            catch { }
            finally
            {
                mutex = new Mutex(true, mutexName);
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

            mutex.ReleaseMutex();
        }
    }
}
          ,               ,               
         (Mutex)_ 1    

저자: 진 희 장 출처:http://blog.csdn.net/chen_xizhang 본 논문 의 저작권 은 작가 에 게 있 습 니 다. 전 재 를 환영 합 니 다. 그러나 작가 의 동의 없 이 이 성명 을 보류 하고 글 페이지 의 뚜렷 한 위치 에서 원문 연결 을 해 야 합 니 다. 그렇지 않 으 면 법률 적 책임 을 추궁 할 권 리 를 보류 합 니 다.

좋은 웹페이지 즐겨찾기