驗證 RT-Thread 調度器:就緒態線程中優先級高者先執行;高優線程就緒時,低優線程讓出 CPU。
void thread1_entry(void* p) { // 優先級 10
rt_uint32_t cnt=0;
while(1) {
rt_thread_delay(3*RT_TICK_PER_SECOND);
rt_kprintf("thread1 count=%d\n", cnt++);
}
}
void thread2_entry(void* p) { // 優先級 10
rt_uint32_t i=0;
while(1) {
rt_thread_delay(RT_TICK_PER_SECOND);
rt_kprintf("thread2 tick=%d\n", rt_tick_get());
}
}
void rt_thread_test(void) {
rt_thread_init(&thread1, "t1", thread1_entry, RT_NULL, stack1, 512, 10, 10);
rt_thread_startup(&thread1);
rt_thread_init(&thread2, "t2", thread2_entry, RT_NULL, stack2, 512, 10, 10);
rt_thread_startup(&thread2);
}
調度器嚴格遵循優先級與時間片輪轉,高優先級線程能及時搶佔 CPU,實時性符合預期。