分别是系统线程和用户线程,系统线程是由RT-Thread内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除,每个线程都有重要的属性,如线程控制块、线程栈、入口函数等。
RT-Thread 线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程和用户线程,系统线程是由 RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除。 而我们主要学习的就是用户线程的创建与调度,以...
一个是rt_thread_startup(&led1_thread);(静态) 一个是rt_thread_startup(led2_thread);(动态) 静态线程为什么需要取地址,动态可以直接用,不仔细看的话还不一定发现这个问题, 其实从他们的定义就已经不同了,只不过rt_thread_t 和rt_thread 一眼看去还真可能傻傻分不清楚 = =!以前我刚用的时候也在这里...
启动线程:rt_thread_startup 脱离线程:rt_thread_detach //静态创建线程result = rt_thread_init(&thread1,//线程handle"static",//线程名rt_init_thread_entry,//线程入口函数RT_NULL,//线程入口参数&thread1_stack[0],//线程栈地址sizeof(thread1_stack),//线程栈大小6,//线程优先级10);//线程时间片...
rt_err_trt_thread_detach(rt_thread_t thread) 传入的参数就是要删除的线程句柄。 这里其实不算删除,应该叫脱离会比较好。因为执行完这条程序以后,静态线程只是从线程队列中删除,并且从对象管理中脱离,其所占内存依然存在。(静态线程:我自由啦!) 动态线程删除使用rt_thread_delete() ...
挂起状态的线程,如果调用 rt_thread_delete/detach() 函数,将更改为关闭状态(RT_THREAD_CLOSE); 运行状态的线程,如果运行结束,就会在线程的最后部分执行 rt_thread_exit() 函数,将状态更改为关闭状态。 注意:RT-Thread 中,实际上线程并不存在运行状态,就绪状态和运行状态是等同的。
这篇重点介绍 RT-thread 提供的线程管理相关的接口函数,以及实战演示。 线程创建 在RT-Thread 中,创建一个线程的方式有两种: 动态创建方式,线程的栈和线程控制块由系统从动态内存堆上分配。 静态创建方式,线程的栈和线程控制块由用户定义分配。 1. 动态创建线程 ...
本RT-Thread 专栏记录的开发环境: RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及 配合CubeMX开发快速上手) RT-Thread记录(二、RT-Thread内核启动流程 — 启动文件和源码分析 一、RT-Thread线程操作函数 RT-Thread线程操作包含:创建 / 初始化线程、启动线程、运行线程、删除 / 脱离线程。
** 函数名称: rt_thread_init ** 函数功能: 静态初始化线程实例 ** 入口參数: thread 线程对象句柄 ** name 线程的名字 ** entry 线程的入口函数 ** parameter 附加參数 ** stack_start 栈底指针 ** stack_size 栈的大小 ** priority 线程的优先级 ...
rt_mutex_delete rt_event_create rt_event_delete rt_mb_create rt_mb_delete rt_mq_create rt_mq_delete 完成量 登录后复制rt_completion_wait 队列类 登录后复制rt_wqueue_wait rt_data_queue_push rt_data_queue_pop 延时 登录后复制rt_thread_sleep ...