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要终止的线程的句柄

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值