syok_2001 发表于 2010-4-19 17:33:23

rt_thread_self 问题

请问rt_thread_self线程让出接口.如果当前被让出的线程任务最高.那么它如何让出啊?

ffxz 发表于 2010-4-19 17:39:55

rt_thread_self?

你指的是rt_thread_yield?rt_thread_self仅获得当前线程的控制块,并不会做调度的事情。

syok_2001 发表于 2010-4-20 09:09:52

对不起,昨天快下班了提问错了,我是问rt_thread_yield线程让出.如果被让出的线程级别最高,它咋能让出啊?

ffxz 发表于 2010-4-20 09:48:55

通常能够让当前线程执行rt_thread_yield就代表当前这个线程的优先级是系统中就绪线程中最高的。

但是这个调用在,当前系统中存在有和当前线程优先级相同的就绪线程时,会表现出线程的切换:切换到下一个相同优先级的就绪线程中。

例如,线程 A、B、C,它们的优先级相同,A与B是就绪态,C是阻塞态,当前线程是A

当A执行rt_thread_yield调用时,系统将切换到B去。(C虽然是相同优先级,但是它是阻塞态,是不可能切换过去的)

syok_2001 发表于 2010-4-20 12:53:51

同优先级切换 谢谢
页: [1]
查看完整版本: rt_thread_self 问题