preempt와 thread_yield 차이점

preempt

현재 CPU를 사용하는 스레드로부터 CPU 소유권을 뺏는 동작을 의미한다. 특정 스레드가 CPU 소유권을 가져간다.

thread_yield

현재 CPU를 사용하는 스레드가 CPU 소유권을 놓는다. Ready queue에 있는 스레드 중에 우선순위가 높은 CUP가 소유권을 갖는다.

차이점

누군가에게 CPU 가 돌아가냐에 차이점이 보인다. preempt는 특정 스레드가 CPU를 가져간다. yield는 우선순위가 높은 스레드가 가져간다. preempt 정의에는 우선순위가 없다. 따라서 우선순위가 낮은 스레드가 CPU를 가져갈 수도 있다.