댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
C#
2012.06.11 20:49
공유데이터 잠금. Critical Section 사용, lock() 함수
조회 수 22195 댓글 0
멀티 스래드의 가장큰 문제점으로 공유자원 사용시 병목현상(BottleNeck),데드락(DeadLock)이 발생하게 된다.
▷병목현상(BottleNeck) : 여러개의 스래드가 하나의 자원을 사용하려고 할때 생기는 문제
▷데드락 : (DeadLock) : 하나의 스래드가 자원을 무한으로 사용할때 다른 스래드가 무한으로 대기 하게되는 문제
- Lock 동기화 -
예) public class Top{ private int limit = 0 ; public say_Hello(){ int hash = Thread.Current.GetHashCode(); int count = 0 ; lock(this){//<<<<<여기 부터 limit자원이 공유된다. while(count<10){ Console.WriteLine("Thread"+hash+":"+limit++); count++ ; Thread.Sleep(10); } }//lock 끝! }
public static void Main() {
lock 키워드 형식 : lock(잠그고 싶은 자원){ 자원이 공유되어서 사용되고 싶은 위치 } Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5