caesura_k 发表于 2023-5-12 19:20:46

关于rt_thread中的优先级表rt_thread_priority_table[ ]的插入问题;

本帖最后由 caesura_k 于 2023-5-12 19:28 编辑

各位老哥来看一看,关于rt_thread中的优先级表rt_thread_priority_table[ ]的插入问题;

1 线程初始化的时候,把线程节点插入优先级列表,使用了rt_list_insert_before()函数;

优先级列表内的地址应该如图所示,插入的线程节点地址被放到了priority_table[ ].prev中;

那为什么调用的时候都是调用priority_table.next呢?

2 对于rt_thread_priority_table[ ]的链表插入,请问&rt_thread_priority_table的地址的链表是图中标注的红色链表地址吗?


caesura_k 发表于 2023-5-15 16:18:56

有人吗?
管理员在吗?
水一水;

caesura_k 发表于 2023-6-1 15:55:59

1 调用的时候都是.next是因为一开始初始化的时候xx_prioity_table[].next和xx_priority_table[].prev中都是使用自身地址初始化的;
    l->prev里存的是&xx_prioity_table[],l->prev->next=n是把n存入了xx_prioity_table[].next;
    调用的xx_prioity_table[].next是第一个插入的优先级,也就是最早插入的优先级,这样有多个节点的话就等价于排队的队列先进先出;
    调用的xx_priority_table[].prev是最近插入的优先级,也就是最晚插入的优先级;
2 &rt_thread_priority_table[]就是图中标注的红色链表节点;
页: [1]
查看完整版本: 关于rt_thread中的优先级表rt_thread_priority_table[ ]的插入问题;