threadx(六)--线程

thread-线程

小知识:_txe_thread_create 一般会做参数检查 _tx_thread_create 实现具体的功能

API 官方文档

API手册

线程相关 API 汇总

tx_thread_create

tx_thread_delete

tx_thread_suspend

tx_thread_resume

tx_thread_sleep

tx_thread_relinquish

tx_thread_priority_change

tx_thread_time_slice_change

tx_thread_reset

tx_thread_terminate

tx_thread_create

函数原型

UINT  tx_thread_create(TX_THREAD *thread_ptr, 
                       CHAR *name_ptr, 
                       VOID (*entry_function)(ULONG id), 
                       ULONG entry_input,
                       VOID *stack_start, 
                       ULONG stack_size, 
                       UINT priority, 
                       UINT preempt_threshold,
                       ULONG time_slice, 
                       UINT auto_start)

函数各个参数及含义

参数含义
thread_ptr线程控制块指针
name_ptr线程名指针
entry_function线程入口函数,当线程从此函数返回时,它将处于已完成状态并无限期挂起
entry_input线程入口函数参数
stack_start线程栈的起始地址
stack_size线程栈大小
priority线程优先级,值的范围为 0TX_MAX_PRIORITES-1,其中值 0 表示最高优先级
preempt_threshold禁止抢占优先级阈值,0TX_MAX_PRIORITIES-1。只有高于此级别的优先级才能抢占此线程。此值必须小于或等于指定的优先级。等于线程优先级的值禁用抢占阈值,设为 0 时,禁止抢占,此值在运行时可动态改变
time_slice时间片,使用抢占阈值可禁用时间片。时间片值范围为 10xFFFF(含)。值 TX_NO_TIME_SLICE(值为 0)将禁用此线程的时间片。
auto_start自动启动选项,设置线程是立即启动还是处于挂起状态,选项包括 TX_AUTO_START(0x01)TX_DONT_START(0x00)。如果 TX_DONT_START,应用程序稍后必须调用 tx_thread_resume 才能运行线程。
tx_thread_delete

函数原型

UINT  tx_thread_delete(TX_THREAD *thread_ptr)

函数各个参数及含义

参数含义
thread_ptr要删除的线程控制块指针
tx_thread_suspend

函数原型

UINT  tx_thread_suspend(TX_THREAD *thread_ptr)

函数各个参数及含义

参数含义
thread_ptr要挂起的线程控制块指针
tx_thread_resume

函数原型

UINT  tx_thread_resume(TX_THREAD *thread_ptr)

函数各个参数及含义

参数含义
thread_ptr要恢复的线程控制块指针
tx_thread_sleep

函数原型

UINT  tx_thread_sleep(ULONG timer_ticks)

函数各个参数及含义

参数含义
timer_ticks线程要挂起的 tick 数
tx_thread_relinquish

函数原型

void tx_thread_relinquish(void)

作用:将当前 CPU 的使用权让出给同优先级的线程或更高优先级的线程,如果没有同优先级或更高优先级的线程就绪,此函数简单的返回。

tx_thread_priority_change

函数原型

UINT  tx_thread_priority_change(TX_THREAD *thread_ptr, UINT new_priority, UINT *old_priority)

函数参数及含义

参数含义
thread_ptr要改变优先级的线程句柄
new_priority新的优先级
old_priority旧的优先级
tx_thread_time_slice_change

函数原型

UINT  tx_thread_time_slice_change(TX_THREAD *thread_ptr, ULONG new_time_slice, ULONG *old_time_slice)

函数参数及含义

参数含义
thread_ptr要改变时间片的线程句柄
new_time_slice新的时间片
old_time_slice旧的时间片
tx_thread_reset

函数原型

UINT  tx_thread_reset(TX_THREAD *thread_ptr)

函数参数及含义

参数含义
thread_ptr要复位的线程的句柄

注意:应用程序调用此函数之后必须调用 tx_thread_resume 来让线程运行起来

tx_thread_terminate

函数原型

UINT  tx_thread_terminate(TX_THREAD *thread_ptr)

函数参数及含义

参数含义
thread_ptr要终止的线程的句柄

注意:线程终止之后就不能再运行,除非删除或重新创建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RT-Thread和ThreadX都是嵌入式实时操作系统(RTOS),用于开发嵌入式系统。它们有一些相似之处,但也有一些区别。 1. 架构和内核:RT-Thread是一个开源的实时操作系统,采用了微内核架构,具有较小的内核体积和灵活的组件化设计。而ThreadX是一个商业化的实时操作系统,采用了经典的线程X内核架构,具有高效的任务切换和低延迟的特点。 2. 支持平台:RT-Thread支持多种硬件平台,包括ARM、MIPS、X86等,可以在不同的处理器架构上运行。而ThreadX主要针对ARM Cortex-M系列处理器进行优化,具有较高的性能和可靠性。 3. 内存管理:RT-Thread提供了灵活的内存管理机制,可以根据应用需求选择不同的内存管理方案。而ThreadX采用了固定大小的内存块分配方式,可以提高内存管理的效率。 4. 组件和功能:RT-Thread提供了丰富的组件和功能模块,包括文件系统、网络协议栈、图形界面等,可以满足不同应用场景的需求。而ThreadX主要关注于实时性能和低功耗,提供了高效的任务调度和中断处理机制。 5. 开发生态:RT-Thread是一个开源项目,具有活跃的社区支持和丰富的开发资源。而ThreadX是一个商业化产品,需要购买许可证才能使用,并且支持较少的开发者社区。 总的来说,RT-Thread注重灵活性和可定制性,适用于各种嵌入式应用场景;而ThreadX注重实时性能和低功耗,适用于对实时性要求较高的嵌入式系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值