* Mutex
1. 설명
- Mutex 클래스는 해당 머신의 프로세스간에서도 베타적Locking을 하는데 사용.
- Mutex 락킹은 Monitor 락킹보다 약 50배 정도 느리기 때문에 프로세스내에서만 배타적 Lock이 필요한 경우 C#의 lock이나 Monitor클래스를 사용한다.
- 한 프로세스 내에서 사용할 경우 Monitor를 사용하는 것이 빠른 방식이다.
2. Mutex 활용
- 한 머신내에서 오직 한 응용프로그램만 실행되도록 할 때
한 컴퓨터 내 한 프로세스만 뜨게 하기 위해 고유의 Mutex명을 지정할 필요가 있음.
처음 프로세스가 먼저 Mutex를 획득하면 다른 프로세스는 Mutex를 획득 할 수 없기 때문에 오직 하나의 프로그램만 머신내에서 실행되는 것
* Semaphore
1. 설명
- 공유된 리소스를 지정된 수의 쓰레드들만 엑세스 할 수 있게 허용함.
- lock, Monitor, Mutex가 한번에 한 쓰레드만 허용하는 반면, 세마포어는 복수 개의 쓰레드가동시에 리소스를 엑세스하는 것을 허용한다.
* Monitor
- 특정 코드 블록을 베타적으로 locking하는 기능을 가지고 있다.
- cirtical section 블록을 시작하여 한 쓰레드만 블록으로 들어가게 함.
반응형
'프로그래밍 > C#' 카테고리의 다른 글
Wcf : binding (0) | 2019.05.26 |
---|---|
string , string builder 차이 (0) | 2019.03.05 |
[c#] local ip 찾는 함수 (0) | 2018.07.03 |
리플렉션 (0) | 2017.08.13 |
전처리기. (0) | 2017.08.13 |
댓글