Microsoft MVP성태의 닷넷 이야기
안녕하세요 선생님 뮤텍스 관련 질문 드립니다 [링크 복사], [링크+제목 복사],
조회: 13919
글쓴 사람
김기헌
홈페이지
첨부 파일
 

안녕하세요 msdn을 읽어보니 닷넷에서는 로컬 뮤텍스와 명명된 시스템 뮤텍스 2가지로 나뉜다고 하는데
명명된 시스템 뮤텍스를 사용하면 운영체제가 제공하는 뮤텍스를 사용하여 프로세스 간 동기화가 가능하다 설명되어 있어서 간단하게 테스트 코드를 작성해 보았습니다
예를 들어 프로세스 A에서
Mutex mutex = new Mutex(true, "sharedmutex");
Read();

이렇게 프로세스 A에서 뮤텍스의 소유권을 먼저 가져간 후 Read 함수로 블락을 걸어놓고
프로세스 B에서 아래 코드를 작성한 후
Mutex mutex = new Mutex(false, "sharedmutex");
mutex.WaitOne();
WriteLine("Hello");

이렇게 실행을 해보았는데 예상대로 프로세스A가 동일한 이름의 뮤텍스를 먼저 획득했기 때문에 프로세스 B의 WaitOne 호출 부분에서 대기 상태가 걸리더라구요
여기서 제가 궁금한 점은 저 뮤텍스 개체는 각각 프로세스A,B 메모리에 한개씩 할당이 되었을텐데 실질적으로는 sharedmutex라는 운영체제의 한 개의 뮤텍스를 두 프로세스가 공유하고 있는 것인가요?

휴일에 질문드려 죄송합니다 항상 감사드립니다








[최초 등록일: ]
[최종 수정일: 10/3/2022]


비밀번호

댓글 작성자
 



2022-10-03 02시30분
네, 맞습니다. 뮤텍스는 커널에서 제공하는 개체이고 이름을 사용하는 경우 서로 다른 프로세스에서도 지정가능하므로 한 개 생성됩니다. 닷넷의 유저 코드에서 생성하는 Mutex는 사실 커널 객체를 접근하기 위한 껍데기에 불과합니다.

'named'라고 붙여진 커널 개체들이 보통 이런 특징을 지닙니다. 일례로 다음의 글에서는,

.NET 코드 - 단일 Process 실행
; https://www.sysnet.pe.kr/2/0/967

Named event 개체를 이용해 구현할 수 있었던 이유가 되기도 합니다.
정성태
2022-10-03 11시10분
[김기헌] 감사합니다^^
[guest]

... 46  47  48  49  50  51  52  53  54  55  56  57  58  59  [60]  ...
NoWriterDateCnt.TitleFile(s)
1161Ji Y...7/12/201319800안녕하세요? 음성인식 관련해서 질문있습니다, [2]
1160이상식7/12/201319952웹서비스 커넥션 풀 오류입니다. [6]
1159김덕성7/4/201328898C# 마샬링 관련 문의입니다 [3]
1157이상식6/26/201321922빌드시 오류인데 원인을 모르겠네요. [2]파일 다운로드1
1156정환나라6/20/201319470In-Process Side-By-Side 동작 원리는 어떻게 되는걸까요? [3]
1155MD워시퍼6/20/201318536안녕하세요. 한가지 궁금한 것이 있어서 문의를 드립니다. [1]
1154it 대...6/13/201321774무선 패킷 스니핑 프로그램 [1]
1153이상헌6/8/201319353죄송합니다;; 또다시 의문점이 생겨 질문드립니다. [1]
1152이상헌6/8/201318378넷두이노 플러스 펌웨어 다운로드가 안되네요;;; [1]
1151황기동6/5/201319628무선 패킷 전송관련 질문 [1]
1147이진권6/2/201319895c# 윈폼 facebook과 연동2 [1]
1144황은영5/29/201324116원격지 서버에서 COM+ 호출이 되지 않습니다. [7]
1143김선희5/28/201324823윈도우 8, 익스플로러 10, 64bit->32bit [1]
1142백지훈5/15/201320202음성인식 TTS 관련해서 질문드립니다 ㅜㅜ [2]파일 다운로드1
1141나그네5/10/201320363안녕하세요..전자세금 관련하여.. 보다보다 여기까지 왔습니다. [4]
1140이성환5/8/201320660제네릭과 배열 관련 기초 질문입니다. [11]
1139양영석5/3/201319046페이스북 로그인 관련하여.... [1]
1137김민현4/30/201318498Binary 구조체에 대한 Linq query 관련 질문입니다. [3]파일 다운로드1
1136박상영4/25/201320329ksc5601에서 지원하지않는 확장문자 찾는방법 [3]
1135sequ...4/16/201335867c# dll c++ 에서 사용하기 (event 사용) [17]
1134이성환4/12/201320274volatile 키워드 관련 질문입니다. [3]파일 다운로드1
1133서광석4/8/201323550vb.net 2010에서 배포시 문제점 확인 방법에 대한 질문드립니다 [1]
1131헤딩3/28/201325487IIS 처리 성능을 높이고 싶으면 풀의 proecss 수를 계속 늘리면 될까요? [1]
1130박재율3/27/201319935WCF 서비스가 종종 죽는데 도움좀 부탁드립니다 ㅠ [1]
1129이상민3/21/201324435안녕하세요...IE Embedded Smart Client가 Windows8에서 정상동작을 하지 않습니다. [8]
1125박홍균3/19/201316700안녕하십니까. visual studio 에서 TFS 접속 관련으로 궁금한 점 여쭤봅니다.
... 46  47  48  49  50  51  52  53  54  55  56  57  58  59  [60]  ...