uc/os-iii學習筆記-任務同步(訊號量、時間標誌組)
任務同步
兩種方式:訊號量、事件標誌組。
訊號量的同步簡而言之就是任務或者ISR傳送訊號量,某任務等待該訊號量,收到後進入就緒態準備執行。
事件標誌組就是一個任務與多個任務發生同步。
訊號量
訊號量在我的博文–資源管理中有提到過,具體可以看下:
與資源管理中不同的是,資源管理是為了獨佔共享資源,是上一把鎖,而任務同步則是釋放出訊號量,在等待區等待該訊號量的任務就會進入到就緒態準備執行。
事件標誌組
有時候一個任務需要與多個事件同步,這個時候就需要使用事件標誌組。事件標誌組與任務之間有兩種同步機制:“或”同步和“與”同步。
“或”同步:等待多個事件時,任何一個事件發生 ,任務都被同步,這個就稱為“或”同步。
“與”同步:當所有的事件都發生時任務才被同步,這種同步機制被稱為“與”同步。
在UCOSIII中事件標誌組為OS_FLAG_GRP
,如果需要使用事件標誌組的時候需要將OS_CFG_FLAG_EN
置1,
具體函式操作就補貼上來了,自己看看原始碼就好,很容易懂的。
相關文章
- rt-thread學習筆記——8、建立訊號量thread筆記
- RT-Thread學習筆記2-互斥量與訊號量thread筆記
- Adaptive AUTOSAR 學習筆記 16 - 時間同步和網路管理APT筆記
- swoole學習手記(四)非同步任務task非同步
- Linux 學習筆記--任務計劃 crontabLinux筆記
- 學習筆記(2):go輕量級分散式與微服務-實現程式的訊號通訊2筆記Go分散式微服務
- 機器學習|從未標記的視訊中學習跨模態時間表示機器學習
- 指標學習筆記指標筆記
- 3|程式間通訊--有名管道學習筆記筆記
- python學習之訊號量Python
- PHP學習筆記4:標量型別的宣告PHP筆記型別
- SpringBoot與非同步任務、定時任務、郵件任務Spring Boot非同步
- Go學習筆記-Zap日誌Go筆記
- 非同步Servlet學習筆記(一)非同步Servlet筆記
- 組合數學學習筆記筆記
- 【學習筆記】組合數學筆記
- [筆記]laravel定時任務的實現筆記Laravel
- 非同步任務取消、超時非同步
- 學習筆記 - 微服務筆記微服務
- RT-Thread學習筆記3-執行緒間通訊 & 定時器thread筆記執行緒定時器
- WGCLOUD使用筆記 - 監測主機的Crontab定時任務資訊GCCloud筆記
- 同步上下文SynchronizationContext學習筆記Context筆記
- SpringBoot學習筆記(十七:非同步呼叫)Spring Boot筆記非同步
- 【任務】資訊檢索.MOOC學習
- 定時任務的書寫流程是什麼?Linux運維學習時間Linux運維
- tensorflow 學習筆記使用CNN做英文文字分類任務筆記CNN文字分類
- Nginx學習筆記3--(極客時間-陶輝)Nginx筆記
- QT學習筆記1(安裝、建立和訊號與槽)QT筆記
- chrony時間同步服務
- Android程式間通訊(複習筆記)Android筆記
- 程式間通訊——POSIX 有名訊號量與無名訊號量
- 程序間通訊(4)-訊號量
- Spring Boot 學習筆記(5):日誌配置Spring Boot筆記
- Laravel8學習筆記-日誌元件Laravel筆記元件
- Django配置celery執行非同步任務和定時任務Django非同步
- Django 如何使用 Celery 完成非同步任務或定時任務Django非同步
- linux 如何建立定時任務?crontab -e 定時任務使用的時間是系統時間Linux
- Adnroid原始碼學習筆記:Handler 執行緒間通訊原始碼筆記執行緒
- 程式間通訊(linux程式與執行緒學習筆記)Linux執行緒筆記