跳到主要内容

tkl_thread | 线程

文件 tkl_thread.c 提供了操作系统线程(任务)创建、终止、获取信息等 API,适用于涂鸦智能设备中的多任务环境。本文件由涂鸦操作系统(TuyaOS)自动生成,其中留有一定范围供开发者在标记的区域内自定义和实现相关逻辑。

API 说明

tkl_thread_create

OPERATE_RET tkl_thread_create(TKL_THREAD_HANDLE* thread,
                              const char* name,
                              uint32_t stack_size,
                              uint32_t priority,
                              const THREAD_FUNC_T func,
                              void* const arg);
  • 功能:创建一个任务线程。

  • 参数:

    • thread:输出参数,用于返回创建的线程句柄。
    • name:线程的名称。
    • stack_size:线程栈大小。
    • priority:线程优先级。
    • func:线程执行的函数指针。
    • arg:传递给线程函数的参数。
  • 返回值:返回 OPRT_OK 则表示创建成功,其他值则表示发生错误。详细错误代码请参考 tuya_error_code.h

tkl_thread_release

OPERATE_RET tkl_thread_release(const TKL_THREAD_HANDLE thread);
  • 功能:终止一个线程并释放其资源。

  • 参数:thread,待终止的线程句柄。

  • 返回值:返回 OPRT_OK 则表示成功,其他值则表示发生错误。详细错误代码请参考 tuya_error_code.h

tkl_thread_get_watermark

OPERATE_RET tkl_thread_get_watermark(const TKL_THREAD_HANDLE thread, uint32_t* watermark);
  • 功能:获取线程栈的最高水位(最小剩余栈空间)。

  • 参数:

    • thread:线程句柄。
    • watermark:输出参数,栈的最高水位字节数。
  • 返回值:返回 OPRT_OK 则表示成功,其他值则表示发生错误。详细错误代码请参考 tuya_error_code.h

tkl_thread_get_id

OPERATE_RET tkl_thread_get_id(TKL_THREAD_HANDLE *thread);
  • 功能:获取当前线程的句柄。

  • 参数:thread,输出参数,当前线程句柄。

  • 返回值:总是返回 OPRT_OK,则表示调用成功。

tkl_thread_set_self_name

OPERATE_RET tkl_thread_set_self_name(const char* name);
  • 功能:设置当前线程的名称。

  • 参数:name,线程的新名称。

  • 返回值:OPRT_OK 则表示成功,其他值则表示发生错误。详细错误代码请参考 tuya_error_code.h

tkl_thread_is_self

OPERATE_RET tkl_thread_is_self(TKL_THREAD_HANDLE thread, BOOL_T* is_self);
  • 功能:判断指定的线程是否为当前线程。

  • 参数:

    • thread:线程句柄。
    • is_self:输出参数,用于指示是否为当前线程。
  • 返回值:OPRT_OK 则表示成功,其他值则表示发生错误。详细错误代码请参考 tuya_error_code.h

tkl_thread_get_priority

OPERATE_RET tkl_thread_get_priority(TKL_THREAD_HANDLE thread, int *priority);
  • 功能:获取线程的优先级。

  • 参数:

    • thread:线程句柄,如果为 NULL 则表示获取当前线程的优先级。
    • priority:输出参数,用于返回线程优先级。
  • 返回值:OPRT_OK 则表示成功,其他值则表示发生错误。详细错误代码请参考 tuya_error_code.h

tkl_thread_set_priority

OPERATE_RET tkl_thread_set_priority(TKL_THREAD_HANDLE thread, int priority);
  • 功能:设置线程优先级。
  • 参数:
    • thread:线程句柄,如果为 NULL 则表示设置当前线程的优先级。
    • priority:新的线程优先级。
  • 返回值:OPRT_OK 则表示成功,其他值则表示发生错误。详细错误代码请参考 tuya_error_code.h

tkl_thread_diagnose

OPERATE_RET tkl_thread_diagnose(TKL_THREAD_HANDLE thread);
  • 功能:诊断线程,如打印任务栈信息等。
  • 参数:thread,线程句柄。
  • 返回值:OPRT_OK 则表示成功,其他值则表示发生错误。详细错误代码请参考 tuya_error_code.h