4.2. 스레드 동기화
sched_yield 함수는 우선순위가 낮은 스레드를 실행할 수 있는 동기화 메커니즘입니다. 이러한 유형의 요청은 잘못 작성된 애플리케이션 내에서 발행된 경우 오류가 발생하기 쉽습니다.
우선 순위가 높은 스레드는 sched_yield() 를 호출하여 다른 스레드가 실행될 기회를 허용할 수 있습니다. 호출 프로세스가 해당 우선 순위에서 실행되는 프로세스 대기열의 tail으로 이동합니다. 동일한 우선 순위에서 다른 프로세스가 실행되지 않는 경우 호출 프로세스가 계속 실행됩니다. 해당 프로세스의 우선 순위가 높은 경우 사용 중인 루프를 만들어 머신을 사용할 수 없게 될 수 있습니다.
CloudEvent _DEADLINE 작업이 sched_yield() 를 호출하면 구성된 CPU를 제공하며 나머지 런타임은 다음 기간까지 즉시 제한됩니다. sched_yield() 동작을 사용하면 다음 기간이 시작될 때 작업을 시작할 수 있습니다.
스케줄러는 실제로 실행을 기다리는 다른 스레드가 있는 시기를 더 잘 확인할 수 있습니다. 모든 실시간 작업에 sched_yield() 를 사용하지 않도록 합니다.
절차
sched_yield()함수를 호출하려면 다음 코드를 실행합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 10.0.0.1
_DEADLINE작업은 다음 기간(다음 루프 시작)까지 충돌 기반 검색(CBS) 알고리즘에 의해 제한됩니다.