728x90
[ 동기화 ]
- 목차
- 개요
- lock
- Monitor
- mutex
- 정리
- 기본 개념
- 동기화란?
- 작업들 사이의 수행 시기를 맞추는 것
- 다수의 스레드가 동시에 공유 자원을 사용할 떄 순서를 정하는것
- 동기호 키워드와 클래스
- lock
- Monitor
- Mutex
- //-------- 여기까지 키워드
- Interlocked
- AutoResetEvent
- ManualResetEvent
- ReaderWriterLock
- // ----------클래스들
- 동기화 대상
- 공유 자원에 대한 접근이 예상되는 스레드
- 한 객체를 다수의 스레드가사용되는 때
- lock 형식
- 기본 형식
- private object obj = new object();
- lock( obj ) //
{
// 임계(경계) 영역 (critical section )
}
- lock형식 의 실체 // 결국 lock은 Monitor코드로 대체된다.
- System.Threading.Monitor.Enter(obj)
try {
} finally {
System.threading.Monitor.Exit(obj);
}
- lock 주의할 점
- lock(this)
- lock( typeof(클래스명))
- --> 위의 두개 쓰지말것을 MS 에서 권고하고있다.
- 아래코드로 대체해서 사용하자!
- private object obj = new object();
lock ( obj )
{
}
- lock 사용의 예
- 공유 자원(변수)을 스레드가 사용하는 예
- lock과 private object 형을 사용한 동기화
- 스레드 함수가 객체를 통해 값을 증가하는 예
- lock과 객체를 잠금으로 동기화
728x90
'기타 공부 기록 > csharpnetwork인강' 카테고리의 다른 글
스레드(2/2) (0) | 2022.01.24 |
---|---|
콘솔코드를 윈도우 코드로 변환(3/3) ~ 스레드(1/2) (0) | 2022.01.19 |
콘솔코드를 윈도우 코드로 변환(2/3) (0) | 2022.01.17 |
콘솔코드를 윈도우 코드로 변환(1/3) (0) | 2022.01.13 |
네트워크 클래스 (5/5) (0) | 2022.01.13 |