멀티 스래드의 가장큰 문제점으로 공유자원 사용시 병목현상(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()
{
Top t = new Top();
Thread thread1 = new Thread(new ThreadStart(t.say_Hell0());
Thread thread2 = new Thread(new ThreadStart(t.say_Hello());
// thread1과 thred2 가 동시에 공유자원을 사용한다.
Thread1.Start();
Thread2.Start();
}
lock 키워드 형식 : lock(잠그고 싶은 자원){
자원이 공유되어서 사용되고 싶은 위치
}
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5