RT-Thread作業系統初始化相同優先級執行緒后,剛開始運行時總是同一個執行緒先被呼叫的原因
- 現象
- 原因
現象
首先在sample在初始化函式里面創建執行緒1和執行緒2這2個執行緒,初始化為 相同的優先級 (注意,這里是先創建的執行緒1,再創建的執行緒2)

然后進入 除錯模式,在執行緒1和執行緒2的函式入口打斷點


結果發現每次debug呼叫這個sample的時候,總是會停在執行緒1的入口斷點那里
原因
固有觀念來看,2個相同優先級的執行緒在剛開始的時候應該是等概隨機呼叫的,然而 實際上,執行緒1初始化完成之后就進入就緒佇列了,但是執行緒2可能都沒初始化完成,所以在就緒佇列里面肯定是執行緒1排在執行緒2的前面,因此進入執行緒調度之后所以肯定是先執行緒1先運行,
一鍵三連,謝謝鐵汁們!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/225820.html
標籤:其他
上一篇:藏不住了!位元組跳動限定“Redis深度歷險“筆記,有什么?
下一篇:vue專案配置多套打包環境變數
