当前位置:网站首页>B_QuRT_User_Guide(19)
B_QuRT_User_Guide(19)
2022-06-11 03:00:00 【weixin_38498942】
B_QuRT_User_Guide(19)
12 屏障
線程使用屏障在程序中的特定點同步它們的執行。
當一個屏障被初始化時,它被分配一個用戶指定的整數值。 此值指示要在屏障上同步的線程數。
當線程在屏障上等待時,它會在屏障上掛起:
- 如果等待屏障的線程總數小於屏障的分配值,則不會發生其他操作。
- 如果等待屏障的線程總數等於屏障的分配值,則喚醒當前等待屏障的所有線程,允許它們越過屏障執行。
在其等待線程被喚醒後,屏障會自動重置,並且可以在程序中再次使用,而無需重新初始化。
屏障是支持以下操作的共享對象:
- qurt_barrier_destroy()
- qurt_barrier_init()
- qurt_barrier_wait()
- Data Types
12.1 qurt_barrier_destroy()
12.1.1 功能文檔
12.1.1.1 int qurt_barrier_destroy ( qurt_barrier_t ∗ barrier )
破壞指定的屏障。
注意:屏障不再使用時必須銷毀。 不這樣做會導致 QuRT 內核中的資源泄漏。
屏障仍在使用時不得破壞。 如果發生這種情况,則 QuRT 的行為是未定義的。
相關數據類型
qurt_barrier_t
參數
| in | barrier | 指向要銷毀的屏障對象的指針。 |
返回值
未使用的整數值。
依賴關系
None.
12.2 qurt_barrier_init()
12.2.1 功能文檔
12.2.1.1 int qurt_barrier_init ( qurt_barrier_t ∗ barrier, unsigned int threads_total )
初始化屏障對象。
相關數據類型
qurt_barrier_t
參數
| out | barrier | 指向要初始化的屏障對象的指針。 |
| in | threads_total | 要在屏障上同步的線程總數。 |
返回值
未使用的整數值。
依賴關系
None.
12.3 qurt_barrier_wait()
12.3.1 功能文檔
12.3.1.1 int qurt_barrier_wait ( qurt_barrier_t ∗ barrier )
等待在屏障上。
在指定的屏障上掛起當前線程。
函數返回值指示線程是否是最後一個在屏障上同步的線程。 當線程在屏障上等待時,它會在屏障上掛起:
- 如果等待屏障的線程總數小於分配的屏障值,則不會發生其他操作。
- 如果等待屏障的線程總數等於分配的屏障值,則喚醒當前等待屏障的所有線程,允許它們越過屏障執行。
注意:在其等待線程被喚醒後,屏障會自動重置,可以在程序中再次使用,無需重新初始化。
相關數據類型
qurt_barrier_t
參數
| in | barrier | 指向要等待的屏障對象的指針。 |
返回值
QURT_BARRIER_OTHER – 當前線程從屏障喚醒。
QURT_BARRIER_SERIAL_THREAD – 當前線程是屏障的最後調用者。
依賴關系
None.
12.4 數據類型
本節介紹屏障服務的數據類型。
- 障礙在QuRT 中錶示為qurt_barrier_t 類型的對象。
12.4.1 定義文檔
12.4.1.1 #define QURT_BARRIER_SERIAL_THREAD 1
串行線程。
12.4.1.2 #define QURT_BARRIER_OTHER 0
其他。
12.4.2 數據結構文檔
12.4.2.1 union qurt_barrier_t
QuRT 屏障類型。
边栏推荐
猜你喜欢

Go quick start of go language (I): the first go program

第七章 常用的协议简介(1)

蓝桥杯_小蓝吃糖果_鸽巢原理 / 抽屉原理

重磅直播!ORB-SLAM3系列之特征匹配(MLPnP、词袋模型等)。

Blue Bridge Cup_ Xiao Lan eats candy_ Pigeon nest principle / drawer principle

JS memory leak

HUST Software Engineering (Experiment 2) -- TDD test driven development experiment.
![WordPress upgrade error: briefly unavailable for scheduled maintenance [resolved]](/img/f5/24e283d7d11e4487bfa231d9aa7ae8.jpg)
WordPress upgrade error: briefly unavailable for scheduled maintenance [resolved]

What is ttfb

CocosCreator原生二次开发的正确姿势
随机推荐
Uni app - one click access to user information
[long time series prediction] aotoformer code detailed [3] model overall architecture analysis
富络经典源码富络经典系统开发原理分享
How to use phpMyAdmin to optimize MySQL database
CPT 102_LEC 15
RS232/RS485转4G DTU 上传基于Modbus协议的温湿度传感器数据到远程TCP服务器
[Fibonacci series]
蓝桥杯_小蓝吃糖果_鸽巢原理 / 抽屉原理
巴歇尔槽流量计远程采集物联网关在明渠流量监测的应用
两部门联合印发《校外培训机构消防安全管理九项规定》
The Google search console webmaster tool cannot read the sitemap?
AOSP ~ modify WebView default implementation
Whether the outbound sequence is the inbound sequence
AOSP ~ logcat chatty line expired
Manon's advanced road - Daily anecdotes
CPT 102_LEC 16
How to fix syntax errors in WordPress websites
你的公司会选择开发数据中台吗?
Arduino uno connected to jq8900-16p voice broadcast module
WordPress article directory plug-in luckywp table of contents setup tutorial