一、RT-Thread线程管理的功能特点 RT-Thread线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程和用户线程,系统线程是由RT-Thread内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除,每个线程都有重要的...
线程分为:系统线程和用户线程,系统线程是由 RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除 RT-Thread 的线程调度器是抢占式的,主要的工作就是从就绪线程列表中查找最高优先级线程,保证最高优先级的线程能够被运行,...
调用该函数后,线程对象将会被移出线程队列并且从内核对象管理器中删除,线程占用的堆栈空间也会被释放,收回的空间将重新用于其他的内存分配。实际上,用rt_thread_delete() 函数删除线程接口,仅仅是把相应的线程状态更改为RT_THREAD_CLOSE 状态,然后放入到rt_thread_defunct 队列中;而真正的删除动作(释放线程控制块和释...
线程控制块 在RT-Thread 中,线程控制块由结构体struct rt_thread表示,线程控制块是操作系统用于管理线程的一个数据结构,它会存放线程的一些信息,例如优先级、线程名称、线程状态等,也包含线程与线程之间连接用的链表结构,线程等待事件集合等,详细定义如下(在rtdef.h中定义): 为led线程定义一个线程控制块: staticstr...
一、RT-Thread线程操作函数 1.1 动态创建线程 1.2 静态创建线程 1.3 启动线程 线程创建的一个细节—创建和初始化? 句柄是什么? 1.4 删除线程和脱离线程 1.5 挂起和恢复线程 1.6 其他线程辅助函数 1.6.1 获得当前线程 1.6.2 让出处理器资源 1.6.3 线程睡眠(延时函数) ...
rt_thread_delete/detach() 函数将挂起状态的线程更改为关闭状态。 rt_thread_exit(),处于运行状态的线程,运行结束,在线程的最后部分调用此函数,将状态更改为关闭状态。 线程控制块 在RT-Thread 中,线程控制块由结构体 struct rt_thread 表示。 线程控制块是操作系统用于管理线程的一个数据结构,它会存放线程的一些...
RT-Thread 线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程和用户线程,系统线程是由 RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除。 而我们主要学习的就是用户线程的创建与调度,以...
线程同步的作用 简单来说RT-Thread的信号量(semaphore)、互斥量(mutex)、和事件集(event)的作用都是保证共享内存的互斥性。 线程之外的临界区使用 调用rt_enter_critical() 进入临界区,调用 rt_exit_critical() 退出临界区; 调用rt_hw_interrupt_disable() 进入临界区,调用 rt_hw_interrupt_enable() 退出临界区...
rt_thread_resume(), rt_sem_release() 等函数使得挂起状态的线程返回到就绪状态。 rt_thread_delete/detach() 函数将挂起状态的线程更改为关闭状态。 rt_thread_exit(),处于运行状态的线程,运行结束,在线程的最后部分调用此函数,将状态更改为关闭状态。
线程创建 在RT-Thread 中,创建一个线程的方式有两种: 动态创建方式,线程的栈和线程控制块由系统从动态内存堆上分配。 静态创建方式,线程的栈和线程控制块由用户定义分配。 1. 动态创建线程 动态创建线程,用户不需要考虑线程栈和线程控制块空间分配的问题,全部由系统自动完成分配。用户只需要关心其他关键的线程属性即...