• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# fiber.h
2
3<!--Kit: Function Flow Runtime Kit-->
4<!--Subsystem: Resourceschedule-->
5<!--Owner: @chuchihtung; @yanleo-->
6<!--Designer: @geoffrey_guo; @huangyouzhong-->
7<!--Tester: @lotsof; @sunxuhao-->
8<!--Adviser: @foryourself-->
9
10## 概述
11
12纤程是一种轻量级的用户态线程,用于在用户空间内实现高效的任务调度和上下文切换,此为声明纤程的C接口。
13
14**库:** libffrt.z.so
15
16**系统能力:** SystemCapability.Resourceschedule.Ffrt.Core
17
18**起始版本:** 20
19
20**相关模块:** [FFRT](capi-ffrt.md)
21
22## 汇总
23
24### 函数
25
26| 名称 | 描述 |
27| -- | -- |
28| [FFRT_C_API int ffrt_fiber_init(ffrt_fiber_t* fiber, void(\*func)(void*), void* arg, void* stack, size_t stack_size)](#ffrt_fiber_init) | 纤程初始化函数,此函数初始化纤程实例,该实例可以存储上下文。 |
29| [FFRT_C_API void ffrt_fiber_switch(ffrt_fiber_t* from, ffrt_fiber_t* to)](#ffrt_fiber_switch) | 纤程切换函数,调用该函数的线程会暂停当前任务的执行,并将当前上下文保存到from纤程中,同时恢复to纤程中的上下文。 |
30
31## 函数说明
32
33### ffrt_fiber_init()
34
35```
36FFRT_C_API int ffrt_fiber_init(ffrt_fiber_t* fiber, void(*func)(void*), void* arg, void* stack, size_t stack_size)
37```
38
39**描述**
40
41纤程初始化函数,此函数初始化纤程实例,该实例可以存储上下文。
42
43**起始版本:** 20
44
45
46**参数:**
47
48| 参数项 | 描述 |
49| -- | -- |
50| fiber | 指向要初始化的纤程的指针, 具体可参考[ffrt_fiber_t](capi-ffrt-ffrt-fiber-t.md)。 |
51| func | 纤程切换后所要执行的方法。 |
52|  void* arg | 纤程切换后所要执行方法的入参。 |
53|  void* stack | 纤程堆栈内存指针。 |
54|  size_t stack_size | 纤程堆栈大小, 具体可参考[ffrt_storage_size_t](capi-type-def-h.md#ffrt_storage_size_t)。 |
55
56**返回:**
57
58| 类型 | 说明 |
59| -- | -- |
60| FFRT_C_API int (ffrt_fiber_t* fiber, void(*func) | 初始化成功返回ffrt_success,否则返回ffrt_error。 |
61
62### ffrt_fiber_switch()
63
64```
65FFRT_C_API void ffrt_fiber_switch(ffrt_fiber_t* from, ffrt_fiber_t* to)
66```
67
68**描述**
69
70纤程切换函数,调用该函数的线程会暂停当前任务的执行,并将当前上下文保存到from纤程中,同时恢复to纤程中的上下文。
71
72**起始版本:** 20
73
74
75**参数:**
76
77| 参数项 | 描述 |
78| -- | -- |
79| [ffrt_fiber_t](capi-ffrt-ffrt-fiber-t.md)* from | 将要保存的纤程指针。 |
80| [ffrt_fiber_t](capi-ffrt-ffrt-fiber-t.md)* to | 将要恢复的纤程指针。 |
81
82
83