Thread.Sleep(1);
1ms 정도 쉬겠다.
Thread.Sleep(0);
조건부 양보
나보다 우선순위가 낮은 애들한테는 양보 불가
우선순위가 같거나 높은 쓰레드가 없으면 다시 작업 진행
Thread.Yield();
지금 실행 가능한 스레드가 있는 경우 양도, 없으면 다시 작업 진행
문맥 교환(文脈交換, context switch)이란 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태(문맥)를 보관하고 새로운 프로세스의 상태를 적재하는 작업을 말한다.
[위키 백과]
Sleep 또는 Yield로 스레드의 작업을 중단하게되면 CPU는 다른 스레드의 작업을 실행하게 된다.
이때 기존의 작업 내용을 메모리에 적재하고 새로운 스레드의 내용을 cpu의 레지스터로 불러오는 작업이다.
내용을 저장 및 불러오기를 하므로 cost가 있는 작업이라고 볼 수 있다.