Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
关于RTT线程切换的疑问
发布于 2019-11-20 11:55:17 浏览:1506
订阅该版
rt_err_t rt_thread_yield(void) { register rt_base_t level; struct rt_thread *thread; /* disable interrupt */ level = rt_hw_interrupt_disable(); /* set to current thread */ thread = rt_current_thread; /* if the thread stat is READY and on ready queue list */ if ((thread->stat & RT_THREAD_STAT_MASK) == RT_THREAD_READY && thread->tlist.next != thread->tlist.prev) { /* remove thread from thread list */ rt_list_remove(&(thread->tlist)); /* put thread to end of ready queue */ rt_list_insert_before(&(rt_thread_priority_table[thread->current_priority]), &(thread->tlist)); /* enable interrupt */ rt_hw_interrupt_enable(level); rt_schedule(); return RT_EOK; } /* enable interrupt */ rt_hw_interrupt_enable(level); return RT_EOK; } 看RTT源码时,有点地方看不大明白,如上函数, 我假设是一个优先级最高的线程A时间片计时到了,进入了rt_thread_yield 函数中 我的理解是 执行 rt_list_remove(&(thread->tlist)); 是把线程A从线程优先级链表中脱离 rt_list_insert_before 再把线程A接入线程优先级链表中 rt_schedule(); 执行最高优先级线程 因为线程A优先级是最高,这样不就一直是执行A了吗。是我哪里理解的不对?
查看更多
1
个回答
默认排序
按发布时间排序
WillianChan
2019-11-20
-
时间片是在当且仅当有相同优先级的线程存在的情况下,才起作用的。如果说当前系统没有相同优先级的线程,那么当最高优先级的线程有挂起操作的时候,此时调度器就会去调度到别的线程去跑,最高优先级一定会存在挂起操作的,不光是最高优先级,所有的线程(除了idle)一定会有挂起操作,不然其他线程会饿死,
撰写答案
登录
注册新账号
关注者
0
被浏览
1.5k
关于作者
wangqz123
这家伙很懒,什么也没写!
提问
1
回答
0
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【NXP-MCXA153】恩智浦A153上的 IIC(软件) 实践
2
【NXP-MCXA153】恩智浦A153上的 IIC(硬件) 实践
3
RT-Thread全球嵌入式电子设计大赛—报名即将截止!
4
MilkV Duo 对接 RT-Thread 设备驱动 Bug 记录
5
NXP MCXN236测评-RTC
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
Bootloader
AT
Hardfault
ART-Pi
CAN总线
FinSH
USB
文件系统
DMA
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
ESP8266
rt-smart
ota在线升级
WIZnet_W5500
I2C_IIC
UART
flash
packages_软件包
cubemx
freemodbus
PWM
潘多拉开发板_Pandora
定时器
BSP
ADC
中断
flashDB
GD32
编译报错
Debug
socket
msh
at_device
keil_MDK
SFUD
rt_mq_消息队列_msg_queue
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
12
个答案
4
次被采纳
Rb君
15
个答案
2
次被采纳
xiaorui
10
个答案
2
次被采纳
梦笑真美
16
个答案
1
次被采纳
三世执戟
11
个答案
1
次被采纳
本月文章贡献
无言的朝圣
3
篇文章
2
次点赞
rvcore
3
篇文章
1
次点赞
螺丝松掉的人
2
篇文章
5
次点赞
小白爱虾饺
2
篇文章
2
次点赞
LTBOHAPPY
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部