2012년 12월 27일 목요일

Thread 동기화(Monitor, Mutex)

3.Monitor.Enter and Monitor.Exit
Monitor.Enter 와 Monitor.Exit 는 try/ finally 사용한다
Monitor.Exit를 Monitor.Enter 없이 호출된다면 예외를 호출 한다.
CLR 4.0에서는 Monitor.Enter 메소드르 오버로드했다.
public static void Enter(object obj, ref bool lockTaken);
TryEnter Monitor 또한 TryEnter 메소드를 제공한다. millisecond 또는 TimeSpan으로TimtOut을 정한다.
Choosing the Synchronization Object
어떤 오브젝트라도 동기오브젝트로 사용가능하다 스레드 내에서
데드락(스레드내에서 서로 락을 걸음)
중첩락 (Nested Locking)은 가장 바깥쪽에 있는것이사용됨.
4. Mutex
뮤텍스는 C#에서 lock과 같다. 하지만 멀티프로세스 에서 across된다.
즉 뮤텍스는 애플리케이션에서 광범위하게사용된다(컴퓨터)
뮤텍스는 스레드간 아니라 프로세스간에서 사용된다.
뮤텍스로 현재 실행중인 프로그램이
이미 실행되었는지 파악하고 이를 취소하는방법을 사용했었다.

댓글 없음:

댓글 쓰기