当前位置:网站首页>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 屏障類型。
边栏推荐
- HUST Software Engineering (Experiment 2) -- TDD test driven development experiment.
- CPT 102_ LEC 16
- 重磅直播!ORB-SLAM3系列之特征匹配(MLPnP、词袋模型等)。
- CPT 102_LEC 16
- Go 语言的优势和学习路线图
- js 内存泄漏
- 【长时间序列预测】Aotoformer 代码详解之[3]模型整体架构分析
- Win10 安装Office 2016出现错误代码30204-44怎么处理?
- Error excluded identifier before '(' token, grpc enumeration class compilation error
- cmake常用命令
猜你喜欢

Learning Tai Chi Maker - esp8226 (II)

Go language advantages and learning Roadmap

How to add two factor authentication for WordPress websites

How to state clearly and concisely the product requirements?

Unity项目优化详解(持续补充ing)

AOSP ~ 修改WebView默认实现

RS232/RS485转4G DTU 上传基于Modbus协议的温湿度传感器数据到远程TCP服务器

If you understand the logic of mining and carbon neutrality, you will understand the 100 billion market of driverless mining areas
![【长时间序列预测】Aotoformer 代码详解之[3]模型整体架构分析](/img/77/30215c363ae8a1324db1cbcaa5324b.png)
【长时间序列预测】Aotoformer 代码详解之[3]模型整体架构分析

Can Xiaoxiang life become the "Yonghui" in the discount industry after the completion of the round a financing of tens of millions of yuan?
随机推荐
Recent learning and update plan
Go quick start of go language (I): the first go program
Wechat template message errCode ": 40165," errmsg ":" invalid web pagepath
[interview question 17.04. missing numbers]
Arduino Uno接JQ8900-16p语音播报模块
巴歇尔槽流量计远程采集物联网关在明渠流量监测的应用
B_QuRT_User_Guide(19)
GraphAcademy 课程讲解:《Neo4j 图数据科学基础》
js 内存泄漏
How to state clearly and concisely the product requirements?
RS232/RS485转4G DTU 上传基于Modbus协议的温湿度传感器数据到远程TCP服务器
AOSP ~ logcat chatty line expired
Arduino使用NRF24L01模块进行无线通信
AOSP ~ Logcat Chatty 行过期
同一个用户的两次请求SessionId竟然不一致-----记录问题
Help you distinguish GNU, GCC, GCC and G++
Cygwin reports an error child_ info_ fork::abort: XXX. dll: Loaded to different address: parent(XXX) != child(XXX)
Problèmes de classe d'outils JDBC
ORA-00392 ORA-00312 错误处理
OpenJudge NOI 1.13 17:文字排版