rt_thread_init對應靜態定義方式,rt_thread_create對應動態定義方式。
使用靜態定義方式時,必須先定義靜態的執行緒控制塊,並且定義好堆疊空間,然後呼叫rt_thread_init來完成執行緒的初始化工作。採用這種方式,執行緒控制塊和堆疊占用的記憶體會放在rw段,這段空間在編譯時就已經確定,它不是可以動態分配的,所以不能被釋放。而只能使用rt_thread_detach函式將該執行緒控制塊從物件管理器中脫離。
使用動態定義方式rt_thread_create時,rt-thread會動態申請執行緒控制塊和堆疊空間。在編譯時,編譯器是不會感知到這段空間的,只有在程式執行時,rt-thread才會從系統堆中申請分配這段記憶體空間,當不需要使用該執行緒時,呼叫rt_thread_delete函式就會將這段申請的記憶體空間重新釋放到記憶體堆中。
優缺點分析:
使用外部rw時,靜態定義方式會占用rw空間,但是不需要動態分配記憶體,執行時效率高。當使用片內rw時,動態和靜態建立方式不會有明顯區別。
動態方式不會占用額外的rw空間,占用空間小,但是執行時需要動態分配記憶體,效率沒有靜態方式高。
Android tensorflow 基礎知識學習
今天記錄下tensorflow的一些基本知識 1.匯入tensorflow 庫,且指令碼中新增執行使用的python環境 user bin env python import tensorflow as tf 匯入tensorflow庫 匯入 mnist 資料集 資料在linux 根目錄 data下...
Hyperledger Fabric 基礎知識筆記
區塊鏈可以幫助在競爭者之間或具有相反商業利益的組織之間建立信任,這可能導致爭執。資產在hyperledger fabric中表示為鍵值對的集合,狀態更改記錄為通道 分類賬中的事務。資產可以二進位制和 或json形式表示。chaincode是定義一項或多項資產的軟體,以及用於修改資產的交易指令 換句話...
Hyperledger Fabric基礎知識摘記
fabric是hyperledger專案的乙個子專案,它實現了區塊鏈技術,是一種基於交易呼叫和數字事件的分布式共享賬本技術。它採用模組化的架構設計,支援可插拔的元件開發和使用。fabric引入了成員管理的服務,即每個參與者都需要得到對應的證書證明身份才能夠訪問fabric系統,同時引入了多通道的概念...