복수의 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 |