728x90 Thread.Yield()1 [쓰레드 동기화] Thread [Sleep, Yield] , ContextSwitching 랜덤(Random) 접근 스레드가 while 루프내에서 스핀 락 처럼 무한정 대기하며 불필요한 작업을 하는 것이아닌 랜덤적으로 접근하여 해장 잠금(locked)을 사용하는 방법이다. 여기서 랜덤적으로 접근이란, 한 가지 예시적 상황을 보자. 처음 들어온 스레드가 임계구역에 들어가서 어떤 변수를 사용중인 상황에 두번째 스레드가 임계구역에 들어 가려고 잠금을 획득하려는 찰나 누군가 사용하고 있다. 스핀 락의 경우 폴링방식으로 무한정 대기하지만, 이 랜덤 접근의 상황에서는 두번째 스레드가 "아 누군가 쓰고있네 잠시 있다 와야지 난 좀 이따가 올게 "의 방법이다. 이 방법을 사용하면 불필요한 연산이나 작업을 줄여 CPU의 점유율을 낮출 수 있지만, 반대로, "잠시 있다 와야지" 라는 상황이 무한정 발생한다면, .. 2020. 7. 21. 이전 1 다음 728x90