youtu.be/aKysG8TlxAg

 

복수의 Thread를 만들어서... 

totalCount라는 필드값을 각각의 Thread들이 1씩 10번을 올리게 한다고 할 경우.....

100이라는 totalCount값이 나오지 않는다. 

(이유 설명은 동영상)

이러한 오류를 막기 위해서 lock을 이용한다.

 

<lock 이용방법> 

 lock을 사용하기 위한 object를 먼저 생성.

 왼쪽과 같이 코드 작성

 

 

 

lock키워드(오브젝트)

{

    락 상태에서 실행할 명령;

}

 

여러 Thead중에 하나의 Thread가 lock을 획득하면 다른 thread들은 lock을 획득할 수 없고, lock이 해제되어야 다음 Thread가 lock을 획득하여 보호 됨. 

 

락 상태에서 실행할 명령은 꼭 필요한 부분만 넣을 것. 

 

Program.cs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TableMaker.cs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'c#' 카테고리의 다른 글

C# 람다식 (Lambda Expression)  (0) 2020.08.15
c# 익명타입  (0) 2020.08.15
c# 무명메서드  (0) 2020.08.15
c# 동기 / 비동기  (0) 2020.08.15
c# 쓰레드(Thread) 사용하기  (0) 2020.08.15

+ Recent posts