RT-Thread入门笔记3-线程的创建

线程

RT-Thread 中,线程由三部分组成:线程代码(入口函数)、线程控制块、线程堆栈.

线程代码:
在这里插入图片描述
线程控制块 :
线程控制块是操作系统用于管理线程的一个数据结构, 它会存放线程的一些信息, 例如优先级、 线程名称、 线程状态等, 也包含线程与线程之间连接用的链表结构, 线程等待事件集合等。
struct rt_thread
struct rt_thread *rt_thread_t
线程堆栈:
RT-Thread 每个线程都具有独立的栈空间, 当进行线程切换时, 系统会将当前线程的上下文保存在线程栈中, 当线程要恢复运行时, 再从线程栈中读取上下文信息, 恢复线程的运行。 线程上下文是指线程执行时的环境,具体来说就是各个变量和数据包括所有寄存器变量、堆栈信息、内存信息等。 线程栈在形式上是一段连续的内存空间 ,我们可以通过定义一个数组或者申请一段动态内存来作为线程的栈。

创建线程

rt_err_t rt_thread_init(struct rt_thread *thread,                //线程Handle 
                        const char       *name,                  //线程名 
                        void (*entry)(void *parameter),          //线程入口函数
                        void             *parameter,             //线程入口参数
                        void             *stack_start,           //线程栈地址
                        rt_uint32_t       stack_size,            //线程栈大小
                        rt_uint8_t        priority,              //线程的优先级
                        rt_uint32_t       tick)                  //线程时间片

                          创建静态线程
rt_thread_t rt_thread_create(const char *name,                  //线程名
                             void (*entry)(void *parameter),    //线程入口函数
                             void       *parameter,             //线程入口参数
                             rt_uint32_t stack_size,            //线程栈大小
                             rt_uint8_t  priority,              //线程的优先级
                             rt_uint32_t tick)                  //线程时间片

                              创建动态线程

启动线程

rt_err_t rt_thread_startup(rt_thread_t thread)                  //调用此函数后创建的线程会被加入到线程的就绪队列,执行调度
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值