zepyhr的核心支援三種型別的多執行緒:
1、任務執行緒,可搶占,通常用來執行冗長和複雜的事務。任務的排程基於優先順序,任務執行時高優先順序任務搶占低優先順序任務。
核心可選支援時間片輪轉排程,也就是說同優先順序別的任務可以輪流執行,不會出現cpu被獨佔的風險(換句話說,看樣
子是開啟時間片輪轉且所有執行緒優先順序相等此時才會出現cpu不被獨佔)。
2、纖程,輕量級的不可搶占執行緒,通常用於裝置驅動程式和效能的關鍵性工作,也是基於優先順序排程,纖程在操作阻塞時被
排程,纖程的執行許可權優先於任務執行緒,也就是說任務執行緒的執行需要在所有纖程被執行完後才能得到排程執行。
3、中斷上下文,核心中執行許可權最高,用於處理isrs(中斷處理程式)。只有在所有isr被處理完成後纖程、任務執行緒才會
得到cpu的執行。
排程的情況大致上 isr-->纖程-->任務執行緒,看樣子沒有併發的情況。
the zephyr kernel supports multi-threaded processing for three types of execution contexts.
執行上下文
1.分類 位置 全域性 函式 區域性 2.全域性執行上下文 在執行全域性 前將window確定為全域性執行上下文 對全域性資料進行預處理 var定義的全域性變數 undefined,新增為window的屬性 function宣告的全域性函式 賦值 fun 新增為window的方法 this 賦值 w...
this執行上下文
this的指向為 誰呼叫當前this所在的函式,this就指向誰。也就是說,當前呼叫函式的那個物件自身就是this,就是當前的執行上下文。被滑鼠事件,鍵盤事件等觸發的函式 叫做事件處理函式,事件處理函式的this指向事件源 觸發事件的節點 事件處理函式第乙個引數是事件物件 備註 有名函式的this指...
執行上下文
js原理 原型鏈 執行上下文 事件迴圈 預備知識 1 棧 stack 棧是類似於陣列的一種資料結構。2物件引用 user1指向使用者物件 user1持有使用者物件的引用 var user1 var user2 user1 user2.name 張三 console.log user1.name,us...