RT_thread中,线程由:线程代码(入口函数),线程控制块,线程堆栈 组成
1.线程代码:分为无线循环结构 和 顺序执行结构
void thread_entry(void *parameter)
{
/*等待事件发生*/
无限循环结构 ,必须有让出cpu控制权的动作
/*处理事件*/
}
void thread_entry(void *parameter)
{
/*事务1处理*/
/*事务2处理*/
/*事务N处理*/
}
2.线程控制块
线程控制块是操作系统用于管理线程的一个数据结构,它会存放线程的一些信息,比如:线程名称,优先级,线程状态等,也包括线程与线程间连接用的链表结构,线程等待事件集合。
struct rt_thread
struct rt_thread *rt_thread_t
3.线程栈
rt_thread中每个线程都有独立的栈空间,当线程切换时,系统会当前将线程的上下文保存在线程栈中,当线程要恢复时,再从线程栈中读取上下文信息,恢复线程运行。
线程栈形式上一段连续的内存空间,我们可以通过定义一个数组或申请一段动态内存来作为线程的栈。

网友评论