美文网首页
RTT内核1—线程 2020-02-27

RTT内核1—线程 2020-02-27

作者: 宜居远控 | 来源:发表于2020-02-27 15:22 被阅读0次

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

1.线程入口函数 有2种形式

1)无限循环结构 

void thread_entry(void *parameter)

{

     while(1)

    {

    /*等待事件的发生*/

   .

   .

  /*处理事件*/

    }

}

2)顺序执行结构

void thread_entry(void *parameter)

{

/*事务1处理*/

/*事务2处理*/

/*事务N处理*/

}

2.线程控制块

线程控制块是操作系统用于管理线程的一个数据结构,如:优先级 线程名 线程状态等,也包括线程与线程之间的连接用的链表结构,线程等待事件集合

struct rt_thread

struct rt_thread *rt_thread_t

3.线程栈

RT-Thread每个线程都具有独立的栈空间,当进行线程切换时,系统会将当前线程的上下文保存在线程栈中,当线程恢复运行时,再从线程栈中读取上下文的信息。

线程上下文是指线程执行的环境,具体来说就是各个变量和数据包括所有寄存器的变量,堆栈信息和内存信息等。

线程栈在形式上是一段连续的内存空间,我们可以通过定义一个数组或一段动态内存作为线程的栈。

二. 如何创建线程  动态线程和静态线程的创建

/*创建静态栈

rt_err_t rt_thread_init(struct_thread *thread,

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_priority,

                        rt_uint32_t tick

                      )

三. 启动线程

rt_err_t rt_thread_t_start_up(rt_thread_t thread)

调用此函数后创建的线程会被加入到线程的就绪队列,执行调度


相关文章

  • RTT内核1—线程 2020-02-27

    一. RT-Thread中,线程由3部分组成:线程代码(入口函数),线程控制块,线程堆栈 1.线程入口函数 有2种...

  • 操作系统线程问题

    内核线程和用户线程区别: 内核未知的是用户级线程, 而内核层的线程则知道内核线程。 在使用 M:1 或 M:1N映...

  • Java与线程

    1. 线程的实现 三种方式 1. 使用内核线程实现 内核线程的定义:内核线程(Kernel-Level Threa...

  • Java线程

    线程的实现 1、使用内核线程实现 内核线程(Kernel-Level Thread,KLT)就是直接由操作系统内核...

  • RTT笔记-线程

    继续按照程序流程前进,前面提到的时钟初始化,堆初始化都还未跳出板级初始化rt_hw_board_init函数 然后...

  • 线程安全与锁优化

    1. 线程的实现 实现线程主要有以下三种方式: 使用内核线程实现 :内核线程(Kernel Thread, KL...

  • Java的线程与操作系统的线程

    内核线程(KLT)就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换。程序一般不会直接去使用内核线程,...

  • 用户线程和内核线程

    1.内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好...

  • java线程

    1.实现线程3中方式: 1.1内核线程->轻量级进程: 传统意义上的线程,由内核线程实现的高级接口,进行创建和其他...

  • Linux 线程

    Linux支持内核线程,用户进程以及LWP,Linux2.6之后支持线程组概念。 内核线程是内核创建的线程,处理内...

网友评论

      本文标题:RTT内核1—线程 2020-02-27

      本文链接:https://www.haomeiwen.com/subject/vcithhtx.html