當前位置: 華文星空 > 知識

如何評價「執行緒的本質就是一個正在執行的函數」?

2021-07-04知識

如果我的學生問我執行緒是什麽,我的回答基本也會和「執行緒的本質就是一個正在執行的函數」差不多

因為這是最容易讓初學者理解並能夠幫助他們套用到實踐中的方式。對於我來說,我施教的目的達到了。

但如果在知乎上這麽說,就經常就會有一些寫了幾年程式碼的「大神」們跳出來,指正我的不對,然後舉出一堆專業術語來告訴我執行緒不是那麽一回事。同時給我扣個誤人子弟,不懂裝懂之類的帽子。這讓我很難受。

所以回答這種問題,我還是真的挺糾結的,一來我實在不想一上來就直接就扯什麽排程器,時間切片,上下文切換,信號標之類的玩意,二來我又想把這個知識點科普出去,還得讓「大神」們不至於太鄙視我,思來想去幹脆完成實作一個「多執行緒」程式。來演示「執行緒」這一個概念是如何運作的----準確來說,我的意思是實作一個編譯器,將程式碼中的函數編譯為特定指令流,然後在此基礎上實作一個虛擬機器執行環境,執行該指令流並設計一個基於指令計數切片的排程器,完成這個執行緒的排程工作。然後我們進一步科普執行緒間的協同關系並引入更多的裝逼術語。當然我們的多執行緒的實