harmony 鸿蒙FFRT

  • 2025-06-12
  • 浏览 (1)

FFRT

概述

FFRT(Function Flow运行时)是支持Function Flow编程模型的软件运行时库,用于调度执行开发者基于Function Flow编程模型开发的应用。

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

起始版本: 10

汇总

文件

名称 描述
condition_variable.h 声明条件变量的C接口。
loop.h 声明循环的C接口。
mutex.h 声明mutex的C接口。
queue.h 声明队列的C接口。
shared_mutex.h 声明rwlock的C接口。
sleep.h 声明sleep和yield的C接口。
task.h 声明任务的C接口。
timer.h 声明定时器的C接口。
type_def.h 定义通用类型。

结构体

名称 描述
struct  ffrt_function_header_t 任务执行体。
struct  ffrt_dependence_t 依赖数据结构。
struct  ffrt_deps_t 依赖结构定义。
struct  ffrt_task_attr_t 并行任务属性结构。
struct  ffrt_queue_attr_t 串行队列属性结构。
struct  ffrt_condattr_t FFRT条件变量属性结构。
struct  ffrt_mutexattr_t FFRT锁属性结构。
struct  ffrt_rwlockattr_t FFRT读写锁属性结构。
struct  ffrt_mutex_t FFRT互斥锁结构。
struct  ffrt_rwlock_t FFRT读写锁结构。
struct  ffrt_cond_t FFRT条件变量结构。

类型定义

名称 描述
typedef void * ffrt_loop_t loop句柄。
typedef void * ffrt_queue_t 队列句柄。
typedef int ffrt_qos_t QoS类型。
typedef void(* ffrt_function_t) (void *) 任务执行函数指针类型。
typedef void * ffrt_task_handle_t 并行任务句柄。
typedef void(* ffrt_poller_cb) (void *data, uint32_t event) poller回调函数定义。
typedef void(* ffrt_timer_cb) (void *data) timer回调函数定义。
typedef int ffrt_timer_t 定时器句柄。

枚举

名称 描述
ffrt_queue_type_t { ffrt_queue_serial, ffrt_queue_concurrent, ffrt_queue_max } 队列类型。
ffrt_queue_priority_t { ffrt_queue_priority_immediate = 0, ffrt_queue_priority_high, ffrt_queue_priority_low, ffrt_queue_priority_idle } 任务的优先级类型。
ffrt_qos_default_t {
ffrt_qos_inherit = -1, ffrt_qos_background, ffrt_qos_utility, ffrt_qos_default,
ffrt_qos_user_initiated
}
任务的QoS类型。
ffrt_storage_size_t {
ffrt_task_attr_storage_size = 128, ffrt_auto_managed_function_storage_size = 64 + sizeof(ffrt_function_header_t), ffrt_mutex_storage_size = 64, ffrt_cond_storage_size = 64,
ffrt_queue_attr_storage_size = 128, ffrt_rwlock_storage_size = 64
}
多种类型数据结构分配大小定义。
ffrt_function_kind_t { ffrt_function_kind_general, ffrt_function_kind_queue } 任务类型。
ffrt_dependence_type_t { ffrt_dependence_data, ffrt_dependence_task } 依赖类型。
ffrt_error_t {
ffrt_error = -1, ffrt_success = 0, ffrt_error_nomem = ENOMEM, ffrt_error_timedout = ETIMEDOUT,
ffrt_error_busy = EBUSY, ffrt_error_inval = EINVAL
}
FFRT错误码。
ffrt_mutex_type { ffrt_mutex_normal = 0, ffrt_mutex_recursive = 2, ffrt_mutex_default = ffrt_mutex_normal } 互斥锁类型枚举。

函数

名称 描述
FFRT_C_API int ffrt_cond_init (ffrt_cond_t *cond, const ffrt_condattr_t *attr) 初始化条件变量。
FFRT_C_API int ffrt_cond_signal (ffrt_cond_t *cond) 唤醒阻塞在条件变量上的一个任务。
FFRT_C_API int ffrt_cond_broadcast (ffrt_cond_t *cond) 唤醒阻塞在条件变量上的所有任务。
FFRT_C_API int ffrt_cond_wait (ffrt_cond_t *cond, ffrt_mutex_t *mutex) 条件变量等待函数,条件变量不满足时阻塞当前任务。
FFRT_C_API int ffrt_cond_timedwait (ffrt_cond_t *cond, ffrt_mutex_t *mutex, const struct timespec *time_point) 条件变量超时等待函数,条件变量不满足时阻塞当前任务,超时等待返回。
FFRT_C_API int ffrt_cond_destroy (ffrt_cond_t *cond) 销毁条件变量。
FFRT_C_API ffrt_loop_t ffrt_loop_create (ffrt_queue_t queue) 创建loop对象。
FFRT_C_API int ffrt_loop_destroy (ffrt_loop_t loop) 销毁loop对象。
FFRT_C_API int ffrt_loop_run (ffrt_loop_t loop) 开启loop循环。
FFRT_C_API void ffrt_loop_stop (ffrt_loop_t loop) 停止loop循环。
FFRT_C_API int ffrt_loop_epoll_ctl (ffrt_loop_t loop, int op, int fd, uint32_t events, void *data, ffrt_poller_cb cb) 管理loop上的监听事件。
FFRT_C_API ffrt_timer_t ffrt_loop_timer_start (ffrt_loop_t loop, uint64_t timeout, void *data, ffrt_timer_cb cb, bool repeat) 在ffrt loop上启动定时器。
FFRT_C_API int ffrt_loop_timer_stop (ffrt_loop_t loop, ffrt_timer_t handle) 停止ffrt loop定时器。
FFRT_C_API int ffrt_mutexattr_init (ffrt_mutexattr_t *attr) 初始化mutex属性。
FFRT_C_API int ffrt_mutexattr_settype (ffrt_mutexattr_t *attr, int type) 设置mutex属性类型。
FFRT_C_API int ffrt_mutexattr_gettype (ffrt_mutexattr_t *attr, int *type) 获取mutex类型。
FFRT_C_API int ffrt_mutexattr_destroy (ffrt_mutexattr_t *attr) 销毁mutex属性,用户需要调用此接口。
FFRT_C_API int ffrt_mutex_init (ffrt_mutex_t *mutex, const ffrt_mutexattr_t *attr) 初始化mutex。
FFRT_C_API int ffrt_mutex_lock (ffrt_mutex_t *mutex) 获取mutex。
FFRT_C_API int ffrt_mutex_unlock (ffrt_mutex_t *mutex) 释放mutex。
FFRT_C_API int ffrt_mutex_trylock (ffrt_mutex_t *mutex) 尝试获取mutex。
FFRT_C_API int ffrt_mutex_destroy (ffrt_mutex_t *mutex) 销毁mutex。
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属性。
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) 设置串行队列超时回调方法。
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 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_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)线程队列。
FFRT_C_API int ffrt_rwlock_init (ffrt_rwlock_t *rwlock, const ffrt_rwlockattr_t *attr) 初始化rwlock。
FFRT_C_API int ffrt_rwlock_wrlock (ffrt_rwlock_t *rwlock) 获取写锁。
FFRT_C_API int ffrt_rwlock_trywrlock (ffrt_rwlock_t *rwlock) 尝试获取写锁,获取不到直接退出。
FFRT_C_API int ffrt_rwlock_rdlock (ffrt_rwlock_t *rwlock) 获取读锁。
FFRT_C_API int ffrt_rwlock_tryrdlock (ffrt_rwlock_t *rwlock) 尝试获取读锁,获取不到直接退出。
FFRT_C_API int ffrt_rwlock_unlock (ffrt_rwlock_t *rwlock) 释放rwlock。
FFRT_C_API int ffrt_rwlock_destroy (ffrt_rwlock_t *rwlock) 销毁rwlock。
FFRT_C_API int ffrt_usleep (uint64_t usec) 睡眠调用线程固定的时间。
FFRT_C_API void ffrt_yield (void) 当前任务主动放权,让其他任务有机会调度执行。
FFRT_C_API int ffrt_task_attr_init (ffrt_task_attr_t *attr) 初始化任务属性。
FFRT_C_API void ffrt_task_attr_set_name (ffrt_task_attr_t *attr, const char *name) 设置任务名字。
FFRT_C_API const char * ffrt_task_attr_get_name (const ffrt_task_attr_t *attr) 获取任务名字。
FFRT_C_API void ffrt_task_attr_destroy (ffrt_task_attr_t *attr) 销毁任务属性。
FFRT_C_API void ffrt_task_attr_set_qos (ffrt_task_attr_t *attr, ffrt_qos_t qos) 设置任务QoS。
FFRT_C_API ffrt_qos_t ffrt_task_attr_get_qos (const ffrt_task_attr_t *attr) 获取任务QoS。
FFRT_C_API void ffrt_task_attr_set_delay (ffrt_task_attr_t *attr, uint64_t delay_us) 设置任务延迟时间。
FFRT_C_API uint64_t ffrt_task_attr_get_delay (const ffrt_task_attr_t *attr) 获取任务延迟时间。
FFRT_C_API void ffrt_task_attr_set_queue_priority (ffrt_task_attr_t *attr, ffrt_queue_priority_t priority) 设置并行队列任务优先级。
FFRT_C_API ffrt_queue_priority_t ffrt_task_attr_get_queue_priority (const ffrt_task_attr_t *attr) 获取并行队列任务优先级。
FFRT_C_API void ffrt_task_attr_set_stack_size (ffrt_task_attr_t *attr, uint64_t size) 设置任务栈大小。
FFRT_C_API uint64_t ffrt_task_attr_get_stack_size (const ffrt_task_attr_t *attr) 获取任务栈大小。
FFRT_C_API int ffrt_this_task_update_qos (ffrt_qos_t qos) 更新任务QoS。
FFRT_C_API ffrt_qos_t ffrt_this_task_get_qos (void) 获取任务QoS。
FFRT_C_API uint64_t ffrt_this_task_get_id (void) 获取任务id。
FFRT_C_API void * ffrt_alloc_auto_managed_function_storage_base (ffrt_function_kind_t kind) 申请函数执行结构的内存。
FFRT_C_API void ffrt_submit_base (ffrt_function_header_t *f, const ffrt_deps_t *in_deps, const ffrt_deps_t *out_deps, const ffrt_task_attr_t *attr) 提交任务调度执行。
FFRT_C_API ffrt_task_handle_t ffrt_submit_h_base (ffrt_function_header_t *f, const ffrt_deps_t *in_deps, const ffrt_deps_t *out_deps, const ffrt_task_attr_t *attr) 提交任务调度执行并返回任务句柄。
FFRT_C_API uint32_t ffrt_task_handle_inc_ref (ffrt_task_handle_t handle) 增加任务句柄的引用数。
FFRT_C_API uint32_t ffrt_task_handle_dec_ref (ffrt_task_handle_t handle) 减少任务句柄的引用计数。
FFRT_C_API void ffrt_task_handle_destroy (ffrt_task_handle_t handle) 销毁任务句柄。
FFRT_C_API void ffrt_wait_deps (const ffrt_deps_t *deps) 等待依赖的任务完成,当前任务开始执行。
FFRT_C_API void ffrt_wait (void) 等待之前所有提交任务完成,当前任务开始执行。
FFRT_C_API ffrt_timer_t ffrt_timer_start (ffrt_qos_t qos, uint64_t timeout, void *data, ffrt_timer_cb cb, bool repeat) 启动计时器。
FFRT_C_API int ffrt_timer_stop (ffrt_qos_t qos, ffrt_timer_t handle) 关闭计时器。

类型定义说明

ffrt_function_t

typedef void(* ffrt_function_t) (void *)

描述 任务执行函数指针类型。

起始版本: 10

ffrt_loop_t

typedef void* ffrt_loop_t

描述 loop句柄。

起始版本: 12

ffrt_poller_cb

typedef void(* ffrt_poller_cb) (void *data, uint32_t event)

描述 poller回调函数定义。

起始版本: 12

ffrt_qos_t

typedef int ffrt_qos_t

描述 QoS类型。

起始版本: 10

ffrt_queue_t

typedef void* ffrt_queue_t

描述 队列句柄。

起始版本: 10

ffrt_task_handle_t

typedef void* ffrt_task_handle_t

描述 并行任务句柄。

起始版本: 10

ffrt_timer_cb

typedef void(* ffrt_timer_cb) (void *data)

描述 timer回调函数定义。

起始版本: 12

ffrt_timer_t

typedef int ffrt_timer_t

描述 定时器句柄。

起始版本: 12

枚举类型说明

ffrt_dependence_type_t

enum ffrt_dependence_type_t

描述 依赖类型。

起始版本: 10

枚举值 描述
ffrt_dependence_data 数据依赖类型。
ffrt_dependence_task 任务依赖类型。

ffrt_error_t

enum ffrt_error_t

描述 FFRT错误码。

起始版本: 10

枚举值 描述
ffrt_error 失败。
ffrt_success 成功。
ffrt_error_nomem 内存不足。
ffrt_error_timedout 超时。
ffrt_error_busy 重新尝试。
ffrt_error_inval 值无效。

ffrt_function_kind_t

enum ffrt_function_kind_t

描述 任务类型。

起始版本: 10

枚举值 描述
ffrt_function_kind_general 通用任务类型。
ffrt_function_kind_queue 队列任务类型。

ffrt_mutex_type

enum ffrt_mutex_type

描述 互斥锁类型枚举。

描述互斥类型,ffrt_mutex_normal是普通互斥锁; ffrt_mutex_recursive是递归互斥锁,ffrt_mutex_default是普通互斥锁。

起始版本: 12

枚举值 描述
ffrt_mutex_normal 普通互斥锁。
ffrt_mutex_recursive 递归互斥锁。
ffrt_mutex_default 默认互斥锁。

ffrt_qos_default_t

enum ffrt_qos_default_t

描述 任务的QoS类型。

起始版本: 10

枚举值 描述
ffrt_qos_inherit 继承当前任务QoS属性。
ffrt_qos_background 后台任务。
ffrt_qos_utility 实时工具。
ffrt_qos_default 默认类型。
ffrt_qos_user_initiated 用户期望。

ffrt_queue_priority_t

enum ffrt_queue_priority_t

描述 任务的优先级类型。

起始版本: 12

枚举值 描述
ffrt_queue_priority_immediate immediate 优先级。
ffrt_queue_priority_high high 优先级。
ffrt_queue_priority_low low 优先级。
ffrt_queue_priority_idle lowest 优先级。

ffrt_queue_type_t

enum ffrt_queue_type_t

描述 队列类型。

起始版本: 12

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

ffrt_storage_size_t

enum ffrt_storage_size_t

描述 多种类型数据结构分配大小定义。

起始版本: 10

枚举值 描述
ffrt_task_attr_storage_size 任务属性。
ffrt_auto_managed_function_storage_size 任务执行体。
ffrt_mutex_storage_size 互斥锁。
ffrt_cond_storage_size 条件变量。
ffrt_queue_attr_storage_size 队列属性。

函数说明

ffrt_alloc_auto_managed_function_storage_base()

FFRT_C_API void* ffrt_alloc_auto_managed_function_storage_base (ffrt_function_kind_t kind)

描述 申请函数执行结构的内存。

起始版本: 10

参数:

名称 描述
kind 函数执行结构类型,支持通用和队列函数执行结构类型。

返回:

申请函数执行结构成功返回非空指针, 申请函数执行结构失败返回空指针。

ffrt_cond_broadcast()

FFRT_C_API int ffrt_cond_broadcast (ffrt_cond_t * cond)

描述 唤醒阻塞在条件变量上的所有任务。

起始版本: 10

参数:

名称 描述
cond 条件变量指针。

返回:

唤醒成功返回ffrt_success, 唤醒失败返回ffrt_error_inval。

ffrt_cond_destroy()

FFRT_C_API int ffrt_cond_destroy (ffrt_cond_t * cond)

描述 销毁条件变量。

起始版本: 10

参数:

名称 描述
cond 条件变量指针。

返回:

销毁条件变量成功返回ffrt_success, 销毁条件变量失败返回ffrt_error_inval。

ffrt_cond_init()

FFRT_C_API int ffrt_cond_init (ffrt_cond_t * cond, const ffrt_condattr_t * attr )

描述 初始化条件变量。

起始版本: 10

参数:

名称 描述
cond 条件变量指针。
attr 条件变量属性指针。

返回:

初始化条件变量成功返回ffrt_success, 初始化条件变量失败返回ffrt_error_inval。

ffrt_cond_signal()

FFRT_C_API int ffrt_cond_signal (ffrt_cond_t * cond)

描述 唤醒阻塞在条件变量上的一个任务。

起始版本: 10

参数:

名称 描述
cond 条件变量指针。

返回:

唤醒成功返回ffrt_success, 唤醒失败返回ffrt_error_inval。

ffrt_cond_timedwait()

FFRT_C_API int ffrt_cond_timedwait (ffrt_cond_t * cond, ffrt_mutex_t * mutex, const struct timespec * time_point )

描述 条件变量超时等待函数,条件变量不满足时阻塞当前任务,超时等待返回。

如果达到最大等待时间点时没有调用ffrt_cond_signal或ffrt_cond_broadcast函数解除线程阻塞, 则线程会被自动解除阻塞。

起始版本: 10

参数:

名称 描述
cond 条件变量指针。
mutex mutex指针。
time_point 最大等待到的时间点,超过这个时间点等待返回。

返回:

等待后被成功唤醒返回ffrt_success, 等待超时返回ffrt_error_timedout, 等待失败ffrt_error_inval。

ffrt_cond_wait()

FFRT_C_API int ffrt_cond_wait (ffrt_cond_t * cond, ffrt_mutex_t * mutex )

描述 条件变量等待函数,条件变量不满足时阻塞当前任务。

起始版本: 10

参数:

名称 描述
cond 条件变量指针。
mutex mutex指针。

返回:

等待后被成功唤醒返回ffrt_success, 等待失败返回ffrt_error_inval。

ffrt_get_current_queue()

FFRT_C_API ffrt_queue_t ffrt_get_current_queue (void )

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

废弃版本: 18

起始版本: 12

返回:

返回当前线程队列句柄。

ffrt_get_main_queue()

FFRT_C_API ffrt_queue_t ffrt_get_main_queue (void )

描述 获取主线程队列。

起始版本: 12

返回:

返回主线程队列句柄。

ffrt_loop_create()

FFRT_C_API ffrt_loop_t ffrt_loop_create (ffrt_queue_t queue)

描述 创建loop对象。

起始版本: 12

参数:

名称 描述
queue 并发队列。

返回:

创建成功返回ffrt_loop_t对象, 创建失败返回空指针。

ffrt_loop_destroy()

FFRT_C_API int ffrt_loop_destroy (ffrt_loop_t loop)

描述 销毁loop对象。

起始版本: 12

参数:

名称 描述
loop loop对象。

返回:

销毁成功返回0, 销毁失败返回-1。

ffrt_loop_epoll_ctl()

FFRT_C_API int ffrt_loop_epoll_ctl (ffrt_loop_t loop, int op, int fd, uint32_t events, void * data, ffrt_poller_cb cb )

描述 管理loop上的监听事件。

起始版本: 12

参数:

名称 描述
loop loop对象。
op fd操作符。
fd 事件描述符。
events 事件。
data 事件变化时触发的回调函数的入参。
cb 事件变化时触发的回调函数。

返回:

成功返回0, 失败返回-1。

ffrt_loop_run()

FFRT_C_API int ffrt_loop_run (ffrt_loop_t loop)

描述 开启loop循环。

起始版本: 12

参数:

名称 描述
loop loop对象。

返回:

loop循环失败返回-1, loop循环成功返回0。

ffrt_loop_stop()

FFRT_C_API void ffrt_loop_stop (ffrt_loop_t loop)

描述 停止loop循环。

起始版本: 12

参数:

名称 描述
loop loop对象。

ffrt_loop_timer_start()

FFRT_C_API ffrt_timer_t ffrt_loop_timer_start (ffrt_loop_t loop, uint64_t timeout, void * data, ffrt_timer_cb cb, bool repeat )

描述 在ffrt loop上启动定时器。

起始版本: 12

参数:

名称 描述
loop loop对象。
timeout 超时时间(毫秒)。
data 事件变化时触发的回调函数的入参。
cb 事件变化时触发的回调函数。
repeat 是否重复执行该定时器。

返回:

返回定时器句柄。

ffrt_loop_timer_stop()

FFRT_C_API int ffrt_loop_timer_stop (ffrt_loop_t loop, ffrt_timer_t handle )

描述 停止ffrt loop定时器。

起始版本: 12

参数:

名称 描述
loop loop对象。
handle timer对象。

返回:

成功返回0, 失败返回-1。

ffrt_mutex_destroy()

FFRT_C_API int ffrt_mutex_destroy (ffrt_mutex_t * mutex)

描述 销毁mutex。

起始版本: 10

参数:

名称 描述
mutex mutex指针。

返回:

销毁mutex成功返回ffrt_success, 销毁mutex失败返回ffrt_error_inval。

ffrt_mutex_init()

FFRT_C_API int ffrt_mutex_init (ffrt_mutex_t * mutex, const ffrt_mutexattr_t * attr )

描述 初始化mutex。

起始版本: 10

参数:

名称 描述
mutex mutex指针。
attr mutex属性。

返回:

初始化mutex成功返回ffrt_success, 初始化mutex失败返回ffrt_error_inval。

ffrt_mutex_lock()

FFRT_C_API int ffrt_mutex_lock (ffrt_mutex_t * mutex)

描述 获取mutex。

起始版本: 10

参数:

名称 描述
mutex mutex指针。

返回:

获取mutex成功返回ffrt_success, 获取mutex失败返回ffrt_error_inval或者阻塞当前任务。

ffrt_mutex_trylock()

FFRT_C_API int ffrt_mutex_trylock (ffrt_mutex_t * mutex)

描述 尝试获取mutex。

起始版本: 10

参数:

名称 描述
mutex mutex指针。

返回:

获取mutex成功返回ffrt_success, 获取mutex失败返回ffrt_error_inval或ffrt_error_busy。

ffrt_mutex_unlock()

FFRT_C_API int ffrt_mutex_unlock (ffrt_mutex_t * mutex)

描述 释放mutex。

起始版本: 10

参数:

名称 描述
mutex mutex指针。

返回:

释放mutex成功返回ffrt_success, 释放mutex失败返回ffrt_error_inval。

ffrt_mutexattr_destroy()

FFRT_C_API int ffrt_mutexattr_destroy (ffrt_mutexattr_t * attr)

描述 销毁mutex属性,用户需要调用此接口。

起始版本: 12

参数:

名称 描述
attr mutex属性指针。

返回:

mutex属性销毁成功返回ffrt_success, mutex属性销毁失败返回ffrt_error_inval。

ffrt_mutexattr_gettype()

FFRT_C_API int ffrt_mutexattr_gettype (ffrt_mutexattr_t * attr, int * type )

描述 获取mutex类型。

起始版本: 12

参数:

名称 描述
attr mutex属性指针。
type mutex类型指针。

返回:

mutex类型获取成功返回ffrt_success, mutex属性指针或mutex类型指针是空返回ffrt_error_inval。

ffrt_mutexattr_init()

FFRT_C_API int ffrt_mutexattr_init (ffrt_mutexattr_t * attr)

描述 初始化mutex属性。

起始版本: 12

参数:

名称 描述
attr mutex属性指针。

返回:

mutex属性初始化成功返回ffrt_success, mutex属性初始化失败返回ffrt_error_inval。

ffrt_mutexattr_settype()

FFRT_C_API int ffrt_mutexattr_settype (ffrt_mutexattr_t * attr, int type )

描述 设置mutex属性类型。

起始版本: 12

参数:

名称 描述
attr mutex属性指针。
type mutex类型。

返回:

mutex属性类型设置成功返回ffrt_success, mutex属性指针是空或者mutex类型不是ffrt_mutex_normal或ffrt_mutex_recursive返回ffrt_error_inval。

ffrt_queue_attr_destroy()

FFRT_C_API void ffrt_queue_attr_destroy (ffrt_queue_attr_t * attr)

描述 销毁队列属性。

起始版本: 10

参数:

名称 描述
attr 队列属性指针。

ffrt_queue_attr_get_callback()

FFRT_C_API ffrt_function_header_t* ffrt_queue_attr_get_callback (const ffrt_queue_attr_t * attr)

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

起始版本: 10

参数:

名称 描述
attr 串行队列属性指针。

返回:

返回串行队列超时回调方法。

ffrt_queue_attr_get_max_concurrency()

FFRT_C_API int ffrt_queue_attr_get_max_concurrency (const ffrt_queue_attr_t * attr)

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

起始版本: 12

参数:

名称 描述
attr 队列属性指针。

返回:

返回最大并发度。

ffrt_queue_attr_get_qos()

FFRT_C_API ffrt_qos_t ffrt_queue_attr_get_qos (const ffrt_queue_attr_t * attr)

描述 获取队列QoS属性。

起始版本: 10

参数:

名称 描述
attr 队列属性指针。

返回:

返回队列的QoS属性。

ffrt_queue_attr_get_timeout()

FFRT_C_API uint64_t ffrt_queue_attr_get_timeout (const ffrt_queue_attr_t * attr)

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

起始版本: 10

参数:

名称 描述
attr 串行队列属性指针。

返回:

返回串行队列任务执行的timeout时间。

ffrt_queue_attr_init()

FFRT_C_API int ffrt_queue_attr_init (ffrt_queue_attr_t * attr)

描述 初始化队列属性。

起始版本: 10

参数:

名称 描述
attr 队列属性指针。

返回:

执行成功时返回0, 执行失败时返回-1。

ffrt_queue_attr_set_callback()

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

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

起始版本: 10

参数:

名称 描述
attr 串行队列属性指针。
f 超时回调方法执行体。

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

参数:

名称 描述
attr 队列属性指针。
max_concurrency 最大并发度。

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

参数:

名称 描述
attr 队列属性指针。
qos 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属性。

起始版本: 10

参数:

名称 描述
attr 串行队列属性指针。
timeout_us 串行队列任务执行的timeout时间(微秒)。

ffrt_queue_cancel()

FFRT_C_API int ffrt_queue_cancel (ffrt_task_handle_t handle)

描述 取消队列中一个任务。

起始版本: 10

参数:

名称 描述
handle 任务句柄。

返回:

取消任务成功返回0, 取消任务失败返回-1。

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

参数:

名称 描述
type 队列类型。
name 队列名字。
attr 队列属性。

返回:

创建队列成功返回非空队列句柄, 创建队列失败返回空指针。

ffrt_queue_destroy()

FFRT_C_API void ffrt_queue_destroy (ffrt_queue_t queue)

描述 销毁队列。

起始版本: 10

参数:

名称 描述
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

参数:

名称 描述
queue 队列句柄。
f 任务的执行体。
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

参数:

名称 描述
queue 队列句柄。
f 任务的执行体。
attr 任务属性。

返回:

提交成功返回非空任务句柄, 提交失败返回空指针。

ffrt_queue_wait()

FFRT_C_API void ffrt_queue_wait (ffrt_task_handle_t handle)

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

起始版本: 10

参数:

名称 描述
handle 任务句柄。

ffrt_rwlock_destroy()

FFRT_C_API int ffrt_rwlock_destroy (ffrt_rwlock_t * rwlock)

描述 销毁rwlock。

起始版本: 18

参数:

名称 描述
rwlock rwlock指针。

返回:

销毁rwlock成功返回ffrt_success; 销毁rwlock失败返回ffrt_error_inval。 具体可参考ffrt_error_t

ffrt_rwlock_init()

FFRT_C_API int ffrt_rwlock_init (ffrt_rwlock_t * rwlock, const ffrt_rwlockattr_t * attr )

描述 初始化rwlock。

起始版本: 18

参数:

名称 描述
rwlock rwlock指针。
attr rwlock属性指针。

返回:

初始化rwlock成功返回ffrt_success; 初始化rwlock失败返回ffrt_error_inval。 具体可参考ffrt_error_t

ffrt_rwlock_rdlock()

FFRT_C_API int ffrt_rwlock_rdlock (ffrt_rwlock_t * rwlock)

描述 获取读锁。

起始版本: 18

参数:

名称 描述
rwlock rwlock指针。

返回:

获取读锁成功返回ffrt_success; 获取读锁失败返回ffrt_error_inval或者阻塞当前任务。 具体可参考ffrt_error_t

ffrt_rwlock_tryrdlock()

FFRT_C_API int ffrt_rwlock_tryrdlock (ffrt_rwlock_t * rwlock)

描述 尝试获取读锁,获取不到直接退出。

起始版本: 18

参数:

名称 描述
rwlock rwlock指针。

返回:

返回ffrt_success - 表示获取读锁成功; 返回ffrt_error_inval - 表示锁不存在,获取读锁失败; 返回ffrt_error_busy - 表示没获取到读锁。 具体可参考ffrt_error_t

ffrt_rwlock_trywrlock()

FFRT_C_API int ffrt_rwlock_trywrlock (ffrt_rwlock_t * rwlock)

描述 尝试获取写锁,获取不到直接退出。

起始版本: 18

参数:

名称 描述
rwlock rwlock指针。

返回:

返回ffrt_success - 表示获取写锁成功; 返回ffrt_error_inval - 表示锁不存在,获取写锁失败; 返回ffrt_error_busy - 表示没获取到写锁。 具体可参考ffrt_error_t

ffrt_rwlock_unlock()

FFRT_C_API int ffrt_rwlock_unlock (ffrt_rwlock_t * rwlock)

描述 释放rwlock。

起始版本: 18

参数:

名称 描述
rwlock rwlock指针。

返回:

释放rwlock成功返回ffrt_success; 释放rwlock失败返回ffrt_error_inval。 具体可参考ffrt_error_t

ffrt_rwlock_wrlock()

FFRT_C_API int ffrt_rwlock_wrlock (ffrt_rwlock_t * rwlock)

描述 获取写锁。

起始版本: 18

参数:

名称 描述
rwlock rwlock指针。

返回:

获取写锁成功返回ffrt_success; 获取写锁失败返回ffrt_error_inval或者阻塞当前任务。 具体可参考ffrt_error_t

ffrt_submit_base()

FFRT_C_API void ffrt_submit_base (ffrt_function_header_t * f, const ffrt_deps_t * in_deps, const ffrt_deps_t * out_deps, const ffrt_task_attr_t * attr )

描述 提交任务调度执行。

起始版本: 10

参数:

名称 描述
f 任务执行体封装的指针。
in_deps 输入依赖指针。
out_deps 输出依赖指针。
attr 任务属性。

ffrt_submit_h_base()

FFRT_C_API ffrt_task_handle_t ffrt_submit_h_base (ffrt_function_header_t * f, const ffrt_deps_t * in_deps, const ffrt_deps_t * out_deps, const ffrt_task_attr_t * attr )

描述 提交任务调度执行并返回任务句柄。

起始版本: 10

参数:

名称 描述
f 任务执行体封装的指针。
in_deps 输入依赖指针。
out_deps 输出依赖指针。
attr 任务属性。

返回:

提交任务成功返回非空任务句柄, 提交任务失败返回空指针。

ffrt_task_attr_destroy()

FFRT_C_API void ffrt_task_attr_destroy (ffrt_task_attr_t * attr)

描述 销毁任务属性。

起始版本: 10

参数:

名称 描述
attr 任务属性指针。

ffrt_task_attr_get_delay()

FFRT_C_API uint64_t ffrt_task_attr_get_delay (const ffrt_task_attr_t * attr)

描述 获取任务延迟时间。

起始版本: 10

参数:

名称 描述
attr 任务属性指针。

返回:

返回任务的延迟时间。

ffrt_task_attr_get_name()

FFRT_C_API const char* ffrt_task_attr_get_name (const ffrt_task_attr_t * attr)

描述 获取任务名字。

起始版本: 10

参数:

名称 描述
attr 任务属性指针。

返回:

获取任务名字成功返回非空指针, 获取任务名字失败返回空指针。

ffrt_task_attr_get_qos()

FFRT_C_API ffrt_qos_t ffrt_task_attr_get_qos (const ffrt_task_attr_t * attr)

描述 获取任务QoS。

起始版本: 10

参数:

名称 描述
attr 任务属性指针。

返回:

返回任务的QoS,默认返回ffrt_qos_default。

ffrt_task_attr_get_queue_priority()

FFRT_C_API ffrt_queue_priority_t ffrt_task_attr_get_queue_priority (const ffrt_task_attr_t * attr)

描述 获取并行队列任务优先级。

起始版本: 12

参数:

名称 描述
attr 任务属性指针。

返回:

返回任务优先级。

ffrt_task_attr_get_stack_size()

FFRT_C_API uint64_t ffrt_task_attr_get_stack_size (const ffrt_task_attr_t * attr)

描述 获取任务栈大小。

起始版本: 12

参数:

名称 描述
attr 任务属性指针。

返回:

返回任务栈大小,单位是字节。

ffrt_task_attr_init()

FFRT_C_API int ffrt_task_attr_init (ffrt_task_attr_t * attr)

描述 初始化任务属性。

起始版本: 10

参数:

名称 描述
attr 任务属性指针。

返回:

初始化任务属性成功返回0, 初始化任务属性失败返回-1。

ffrt_task_attr_set_delay()

FFRT_C_API void ffrt_task_attr_set_delay (ffrt_task_attr_t * attr, uint64_t delay_us )

描述 设置任务延迟时间。

起始版本: 10

参数:

名称 描述
attr 任务属性指针。
delay_us 任务延迟时间,单位微秒。

ffrt_task_attr_set_name()

FFRT_C_API void ffrt_task_attr_set_name (ffrt_task_attr_t * attr, const char * name )

描述 设置任务名字。

起始版本: 10

参数:

名称 描述
attr 任务属性指针。
name 任务名字。

ffrt_task_attr_set_qos()

FFRT_C_API void ffrt_task_attr_set_qos (ffrt_task_attr_t * attr, ffrt_qos_t qos )

描述 设置任务QoS。

起始版本: 10

参数:

名称 描述
attr 任务属性指针。
qos 任务QoS。

ffrt_task_attr_set_queue_priority()

FFRT_C_API void ffrt_task_attr_set_queue_priority (ffrt_task_attr_t * attr, ffrt_queue_priority_t priority )

描述 设置并行队列任务优先级。

起始版本: 12

参数:

名称 描述
attr 任务属性指针。
priority 任务优先级。

ffrt_task_attr_set_stack_size()

FFRT_C_API void ffrt_task_attr_set_stack_size (ffrt_task_attr_t * attr, uint64_t size )

描述 设置任务栈大小。

起始版本: 12

参数:

名称 描述
attr 任务属性指针。
size 任务栈大小,单位是字节。

ffrt_task_handle_dec_ref()

FFRT_C_API uint32_t ffrt_task_handle_dec_ref (ffrt_task_handle_t handle)

描述 减少任务句柄的引用计数。

起始版本: 12

参数:

名称 描述
handle 任务句柄。

返回:

返回任务句柄原始引用计数。

ffrt_task_handle_destroy()

FFRT_C_API void ffrt_task_handle_destroy (ffrt_task_handle_t handle)

描述 销毁任务句柄。

起始版本: 10

参数:

名称 描述
handle 任务句柄。

ffrt_task_handle_inc_ref()

FFRT_C_API uint32_t ffrt_task_handle_inc_ref (ffrt_task_handle_t handle)

描述 增加任务句柄的引用数。

起始版本: 12

参数:

名称 描述
handle 任务句柄。

返回:

返回任务句柄原始引用计数。

ffrt_this_task_get_id()

FFRT_C_API uint64_t ffrt_this_task_get_id (void )

描述 获取任务id。

起始版本: 10

返回:

返回当前任务的id。

ffrt_this_task_get_qos()

FFRT_C_API ffrt_qos_t ffrt_this_task_get_qos (void )

描述 获取任务QoS。

起始版本: 12

返回:

返回任务QoS。

ffrt_this_task_update_qos()

FFRT_C_API int ffrt_this_task_update_qos (ffrt_qos_t qos)

描述 更新任务QoS。

起始版本: 10

参数:

名称 描述
qos 当前任务待更新的QoS。

返回:

更新任务QoS成功返回0, 更新任务QoS失败返回-1。

ffrt_timer_start()

FFRT_C_API ffrt_timer_t ffrt_timer_start (ffrt_qos_t qos, uint64_t timeout, void * data, ffrt_timer_cb cb, bool repeat )

描述 启动计时器。

起始版本: 12

参数:

名称 描述
qos QoS等级。
timeout 超时时间(毫秒)。
data 超时后回调函数的入参。
cb 超时执行的回调函数。
repeat 是否重复执行该定时器(该功能暂未支持)。

返回:

返回定时器句柄。

ffrt_timer_stop()

FFRT_C_API int ffrt_timer_stop (ffrt_qos_t qos, ffrt_timer_t handle )

描述 关闭计时器。

起始版本: 12

参数:

名称 描述
qos QoS等级。
handle 定时器句柄。

返回:

关闭成功返回0, 关闭失败返回-1。

ffrt_usleep()

FFRT_C_API int ffrt_usleep (uint64_t usec)

描述 睡眠调用线程固定的时间。

起始版本: 10

参数:

名称 描述
usec 睡眠时间,单位是微秒。

返回:

执行成功时返回ffrt_success。 执行失败时返回ffrt_error。

ffrt_wait()

FFRT_C_API void ffrt_wait (void )

描述 等待之前所有提交任务完成,当前任务开始执行。

起始版本: 10

ffrt_wait_deps()

FFRT_C_API void ffrt_wait_deps (const ffrt_deps_t * deps)

描述 等待依赖的任务完成,当前任务开始执行。

起始版本: 10

参数:

名称 描述
deps 依赖的指针。

ffrt_yield()

FFRT_C_API void ffrt_yield (void )

描述 当前任务主动放权,让其他任务有机会调度执行。

起始版本: 10

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Function Flow Runtime Kit(任务并发调度服务)

harmony 鸿蒙condition_variable.h

harmony 鸿蒙ffrt_cond_t

harmony 鸿蒙ffrt_condattr_t

harmony 鸿蒙ffrt_dependence_t

harmony 鸿蒙ffrt_deps_t

harmony 鸿蒙ffrt_function_header_t

harmony 鸿蒙ffrt_mutex_t

harmony 鸿蒙ffrt_mutexattr_t

harmony 鸿蒙ffrt_queue_attr_t

0  赞