Posts

Thread(執行續)

Thread(執行續)  執行續概念很深,用到CPU的底層知識,若不懂得可以去google一下或修作業系統之類的課程,我稍微講解一下。若沒興趣可以跳過,直接往下看。 先講執行續,執行續負責用來執行程序(腳本要負責的任務)。 再講單執行續,單執行續指的是用一個執行續完成該程序。 再講多執行續,多執行續指的是用多個執行續來完成同一個程序。 打個比方,程序就像任務,執行續就像負責完成任務的基層員工。 單執行續就像一個員工完成一個任務。 多執行續就像多個員工完成一個任務。

程式語言C/C++/C#管理函數呼叫的方式

Image
 程式語言C/C++/C#管理函數呼叫的方式 程式語言C/C++/C#管理程式中函數呼叫的方式很深,用到堆疊概念,若不懂得可以去google一下或修C++之類的課程,我稍微講解一下。  程式語言C/C++/C#管理程式中函數呼叫方式採用堆疊,堆疊採用FILO(First In Last Out)。 就像箱子裡的書本一樣,放在最上面的書是最晚被放的,但它會最早被拿到。 當我執行這段程式碼時,執行程序大致如下: //C++ void Z() { print("z"); print("end z"); } void A() { print("a"); Z(); print("end a"); } int main() { A(); return 0; } null->main()->A(),main()->Z(),A(),main()->A(),main()->main()->null 程式被執行前,堆疊會是 null。 程式一開始被執行時編譯器會找main()函式,堆疊會是 main()。 當A()這行被執行時 電腦會把A()函式放到(push_back)堆疊最上方,堆疊為A(),main() 然後會呼叫A(),先執行print("a")這行,再執行Z()這行。當Z()這行被執行時 電腦會把Z()函式放到(push_back)堆疊最上方,堆疊為Z(), A(),main()。當Z()被執行完後電腦會將控制權交給A(),A()函數繼續執行,堆疊是A(),main()。A()執行完後會剩下main()。main()執行完後,程式執行結束。