openharmony 鸿蒙 capi-queue-h

2026-08-25 浏览 (1)

queue.h

概述

声明队列的C接口。

引用文件: <ffrt/queue.h>

库: libffrt.z.so

系统能力: SystemCapability.Resourceschedule.Ffrt.Core

起始版本: 10

相关模块: FFRT

汇总

结构体

名称描述
ffrt_queue_t队列句柄。

枚举

名称typedef关键字描述
ffrt_queue_type_tffrt_queue_type_t队列类型。

函数

名称描述
FFRT_C_API int ffrt_queue_attr_init(ffrt_queue_attr_t* attr)初始化队列属性。
FFRT_C_API void ffrt_queue_attr_destroy(ffrt_queue_attr_t* attr)销毁队列属性。
FFRT_C_API void ffrt_queue_attr_set_qos(ffrt_queue_attr_t* attr, ffrt_qos_t qos)设置队列QoS属性。
FFRT_C_API ffrt_qos_t ffrt_queue_attr_get_qos(const ffrt_queue_attr_t* attr)获取队列QoS属性。
FFRT_C_API void ffrt_queue_attr_set_timeout(ffrt_queue_attr_t* attr, uint64_t timeout_us)设置串行队列timeout属性。超时时间的最小值是1ms,如果设置的值小于1ms,那么超时时间被设置为1ms。
FFRT_C_API uint64_t ffrt_queue_attr_get_timeout(const ffrt_queue_attr_t* attr)获取串行队列任务执行的timeout时间。
FFRT_C_API void ffrt_queue_attr_set_callback(ffrt_queue_attr_t* attr, ffrt_function_header_t* f)设置串行队列超时回调方法。
不建议在f中调用exit函数,可能导致未定义行为。
FFRT_C_API ffrt_function_header_t* ffrt_queue_attr_get_callback(const ffrt_queue_attr_t* attr)获取串行队列超时回调方法。
FFRT_C_API void ffrt_queue_attr_set_max_concurrency(ffrt_queue_attr_t* attr, const int max_concurrency)设置并行队列最大并发度。
FFRT_C_API int ffrt_queue_attr_get_max_concurrency(const ffrt_queue_attr_t* attr)获取并行队列最大并发度。
FFRT_C_API void ffrt_queue_attr_set_thread_mode(ffrt_queue_attr_t* attr, bool mode)设置队列中的任务是以协程模式还是以线程模式运行。默认以协程模式运行。
FFRT_C_API bool ffrt_queue_attr_get_thread_mode(const ffrt_queue_attr_t* attr)获取队列中的任务是以协程模式还是以线程模式运行。
FFRT_C_API ffrt_queue_t ffrt_queue_create(ffrt_queue_type_t type, const char* name, const ffrt_queue_attr_t* attr)创建队列。
FFRT_C_API void ffrt_queue_destroy(ffrt_queue_t queue)销毁队列。
FFRT_C_API void ffrt_queue_submit(ffrt_queue_t queue, ffrt_function_header_t* f, const ffrt_task_attr_t* attr)提交一个任务到队列中调度执行。
FFRT_C_API ffrt_task_handle_t ffrt_queue_submit_h(ffrt_queue_t queue, ffrt_function_header_t* f, const ffrt_task_attr_t* attr)提交一个任务到队列中调度执行,并返回任务句柄。
FFRT_C_API void ffrt_queue_submit_f(ffrt_queue_t queue, ffrt_function_t func, void* arg, const ffrt_task_attr_t* attr)提交一个任务到队列中调度执行,是ffrt_queue_submit接口的简化包装形式。该接口假定任务不需要销毁回调函数,给定的任务函数和参数被包装为队列任务结构,并将封装后的任务结构和其他参数传递给ffrt_queue_submit接口。
FFRT_C_API ffrt_task_handle_t ffrt_queue_submit_h_f(ffrt_queue_t queue, ffrt_function_t func, void* arg, const ffrt_task_attr_t* attr)提交一个任务到队列中调度执行,并返回任务句柄,是ffrt_queue_submit_h接口的简化包装形式。该接口假定任务不需要销毁回调函数,给定的任务函数和参数被包装为队列任务结构,并将封装后的任务结构和其他参数传递给ffrt_queue_submit_h接口。
FFRT_C_API void ffrt_queue_wait(ffrt_task_handle_t handle)等待队列中一个任务执行完成。
FFRT_C_API int ffrt_queue_cancel(ffrt_task_handle_t handle)取消队列中一个任务。
FFRT_C_API ffrt_queue_t ffrt_get_main_queue(void)获取主线程队列。
FFRT_C_API ffrt_queue_t ffrt_get_current_queue(void)获取应用Worker(ArkTs)线程队列。(API18废弃)

枚举类型说明

ffrt_queue_type_t

enum ffrt_queue_type_t

描述

队列类型。

起始版本: 12

枚举项描述
ffrt_queue_serial串行队列
ffrt_queue_concurrent并行队列
ffrt_queue_max无效队列类型

函数说明

ffrt_queue_attr_init()

FFRT_C_API int ffrt_queue_attr_init(ffrt_queue_attr_t* attr)

描述

初始化队列属性。

起始版本: 10

参数:

参数项描述
ffrt_queue_attr_t* attr队列属性指针。

返回:

类型说明
FFRT_C_API int执行成功时返回0,
执行失败时返回-1。

ffrt_queue_attr_destroy()

FFRT_C_API void ffrt_queue_attr_destroy(ffrt_queue_attr_t* attr)

描述

销毁队列属性。

起始版本: 10

参数:

参数项描述
ffrt_queue_attr_t* attr队列属性指针。

ffrt_queue_attr_set_qos()

FFRT_C_API void ffrt_queue_attr_set_qos(ffrt_queue_attr_t* attr, ffrt_qos_t qos)

描述

设置队列QoS属性。

起始版本: 10

参数:

参数项描述
ffrt_queue_attr_t* attr队列属性指针。
ffrt_qos_t qosQoS属性值。

ffrt_queue_attr_get_qos()

FFRT_C_API ffrt_qos_t ffrt_queue_attr_get_qos(const ffrt_queue_attr_t* attr)

描述

获取队列QoS属性。

起始版本: 10

参数:

参数项描述
const ffrt_queue_attr_t* attr队列属性指针。

返回:

类型说明
FFRT_C_API ffrt_qos_t返回队列的QoS属性。

ffrt_queue_attr_set_timeout()

FFRT_C_API void ffrt_queue_attr_set_timeout(ffrt_queue_attr_t* attr, uint64_t timeout_us)

描述

设置串行队列timeout属性。超时时间的最小值是1ms,如果设置的值小于1ms,那么超时时间被设置为1ms。

起始版本: 10

参数:

参数项描述
ffrt_queue_attr_t* attr串行队列属性指针。
uint64_t timeout_us串行队列任务执行的timeout时间(微秒)。

ffrt_queue_attr_get_timeout()

FFRT_C_API uint64_t ffrt_queue_attr_get_timeout(const ffrt_queue_attr_t* attr)

描述

获取串行队列任务执行的timeout时间。

起始版本: 10

参数:

参数项描述
const ffrt_queue_attr_t* attr串行队列属性指针。

返回:

类型说明
FFRT_C_API uint64_t返回串行队列任务执行的timeout时间。

ffrt_queue_attr_set_callback()

FFRT_C_API void ffrt_queue_attr_set_callback(ffrt_queue_attr_t* attr, ffrt_function_header_t* f)

描述

设置串行队列超时回调方法。

不建议在f中调用exit函数,可能导致未定义行为。

起始版本: 10

参数:

参数项描述
ffrt_queue_attr_t* attr串行队列属性指针。
ffrt_function_header_t* f超时回调方法执行体。

ffrt_queue_attr_get_callback()

FFRT_C_API ffrt_function_header_t* ffrt_queue_attr_get_callback(const ffrt_queue_attr_t* attr)

描述

获取串行队列超时回调方法。

起始版本: 10

参数:

参数项描述
const ffrt_queue_attr_t* attr串行队列属性指针。

返回:

类型说明
FFRT_C_API ffrt_function_header_t*返回串行队列超时回调方法。

ffrt_queue_attr_set_max_concurrency()

FFRT_C_API void ffrt_queue_attr_set_max_concurrency(ffrt_queue_attr_t* attr, const int max_concurrency)

描述

设置并行队列最大并发度。

起始版本: 12

参数:

参数项描述
ffrt_queue_attr_t* attr队列属性指针。
const int max_concurrency最大并发度。

ffrt_queue_attr_get_max_concurrency()

FFRT_C_API int ffrt_queue_attr_get_max_concurrency(const ffrt_queue_attr_t* attr)

描述

获取并行队列最大并发度。

起始版本: 12

参数:

参数项描述
const ffrt_queue_attr_t* attr队列属性指针。

返回:

类型说明
FFRT_C_API int返回最大并发度。

ffrt_queue_attr_set_thread_mode()

FFRT_C_API void ffrt_queue_attr_set_thread_mode(ffrt_queue_attr_t* attr, bool mode)

描述

设置队列中的任务是以协程模式还是以线程模式运行。默认以协程模式运行。

起始版本: 20

参数:

参数项描述
ffrt_queue_attr_t* attr队列属性指针。
bool mode设置队列任务运行方式。true表示以线程模式运行, false表示以协程方式运行。

ffrt_queue_attr_get_thread_mode()

FFRT_C_API bool ffrt_queue_attr_get_thread_mode(const ffrt_queue_attr_t* attr)

描述

获取队列中的任务是以协程模式还是以线程模式运行。

起始版本: 20

参数:

参数项描述
const ffrt_queue_attr_t* attr队列属性指针。

返回:

类型说明
FFRT_C_API booltrue表示以线程模式运行,false表示以协程模式运行。

ffrt_queue_create()

FFRT_C_API ffrt_queue_t ffrt_queue_create(ffrt_queue_type_t type, const char* name, const ffrt_queue_attr_t* attr)

描述

创建队列。

起始版本: 10

参数:

参数项描述
ffrt_queue_type_t type队列类型。
const char* name队列名字。
const ffrt_queue_attr_t* attr队列属性。

返回:

类型说明
FFRT_C_API ffrt_queue_t创建队列成功返回非空队列句柄,
创建队列失败返回空指针。

ffrt_queue_destroy()

FFRT_C_API void ffrt_queue_destroy(ffrt_queue_t queue)

描述

销毁队列。

起始版本: 10

参数:

参数项描述
ffrt_queue_t queue队列句柄。

ffrt_queue_submit()

FFRT_C_API void ffrt_queue_submit(ffrt_queue_t queue, ffrt_function_header_t* f, const ffrt_task_attr_t* attr)

描述

提交一个任务到队列中调度执行。

起始版本: 10

参数:

参数项描述
ffrt_queue_t queue队列句柄。
ffrt_function_header_t* f任务的执行体。
const ffrt_task_attr_t* attr任务属性。

ffrt_queue_submit_h()

FFRT_C_API ffrt_task_handle_t ffrt_queue_submit_h(ffrt_queue_t queue, ffrt_function_header_t* f, const ffrt_task_attr_t* attr)

描述

提交一个任务到队列中调度执行,并返回任务句柄。

起始版本: 10

参数:

参数项描述
ffrt_queue_t queue队列句柄。
ffrt_function_header_t* f任务的执行体。
const ffrt_task_attr_t* attr任务属性。

返回:

类型说明
FFRT_C_API ffrt_task_handle_t提交成功返回非空任务句柄,
提交失败返回空指针。

ffrt_queue_submit_f()

FFRT_C_API void ffrt_queue_submit_f(ffrt_queue_t queue, ffrt_function_t func, void* arg, const ffrt_task_attr_t* attr)

描述

提交一个任务到队列中调度执行,是ffrt_queue_submit接口的简化包装形式。该接口假定任务不需要销毁回调函数,给定的任务函数和参数被包装为队列任务结构,并将封装后的任务结构和其他参数传递给ffrt_queue_submit接口。

起始版本: 20

参数:

参数项描述
ffrt_queue_t queue队列句柄。
ffrt_function_t func指定的任务函数。
void* arg传递给任务函数的参数。
const ffrt_task_attr_t* attr任务属性。

参考:

ffrt_queue_submit

ffrt_queue_submit_h_f()

FFRT_C_API ffrt_task_handle_t ffrt_queue_submit_h_f(ffrt_queue_t queue, ffrt_function_t func, void* arg, const ffrt_task_attr_t* attr)

描述

提交一个任务到队列中调度执行,并返回任务句柄,是ffrt_queue_submit_h接口的简化包装形式。该接口假定任务不需要销毁回调函数,给定的任务函数和参数被包装为队列任务结构,并将封装后的任务结构和其他参数传递给ffrt_queue_submit_h接口。

起始版本: 20

参数:

参数项描述
ffrt_queue_t queue队列句柄。
ffrt_function_t func指定的任务函数。
void* arg传递给任务函数的参数。
const ffrt_task_attr_t* attr任务属性。

返回:

类型说明
FFRT_C_API ffrt_task_handle_t提交成功返回非空任务句柄,
提交失败返回空指针。

参考:

ffrt_queue_submit_h

ffrt_queue_wait()

FFRT_C_API void ffrt_queue_wait(ffrt_task_handle_t handle)

描述

等待队列中一个任务执行完成。

起始版本: 10

参数:

参数项描述
ffrt_task_handle_t handle任务句柄。

ffrt_queue_cancel()

FFRT_C_API int ffrt_queue_cancel(ffrt_task_handle_t handle)

描述

取消队列中一个任务。

起始版本: 10

参数:

参数项描述
ffrt_task_handle_t handle任务句柄。

返回:

类型说明
FFRT_C_API int取消任务成功返回0,
取消任务失败返回-1。

ffrt_get_main_queue()

FFRT_C_API ffrt_queue_t ffrt_get_main_queue(void)

描述

获取主线程队列。

起始版本: 12

返回:

类型说明
FFRT_C_API ffrt_queue_t返回主线程队列句柄。

ffrt_get_current_queue()

FFRT_C_API ffrt_queue_t ffrt_get_current_queue(void)

描述

获取应用Worker(ArkTs)线程队列。

起始版本: 12

废弃版本: 18

返回:

类型说明
FFRT_C_API ffrt_queue_t返回当前线程队列句柄。

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 capi-fiber-h

openharmony 鸿蒙 capi-ffrt-ffrt-mutex-t

openharmony 鸿蒙 capi-ffrt-ffrt-rwlockattr-t

openharmony 鸿蒙 Readme-CN

openharmony 鸿蒙 capi-loop-h

openharmony 鸿蒙 capi-ffrt-ffrt-rwlock-t

openharmony 鸿蒙 capi-shared-mutex-h

openharmony 鸿蒙 capi-ffrt-ffrt-queue-attr-t

openharmony 鸿蒙 capi-ffrt

openharmony 鸿蒙 capi-ffrt-ffrt-fiber-t

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/QylDYk7Y