本篇是統整網路上各資源節錄而成,如有觀念錯誤的地方,還請大大們多多鞭策。
當一個程式(computer program)被執行,作業系統就會為這個程式生成一個程序,以管理該程式執行過程中記憶體和系統資源的分配。
執行緒是構成程序的小單元,一個程序,至少包含一個或多個執行緒;CPU會進行排成(Scheduling),並依照優先級數,給予不同的執行緒相對應的運算資源。
單執行緒:描述對象為CPU系統或是瀏覽器系統運作的方式,代表該系統只能一個任務一個任務依序完成,遇到比較耗時的任務時,還未執行的任務就會處於等待狀態,一定要等到前面的任務完成了,才會往後執行。
多執行緒:指CPU可以同時實現多個執行緒並行執行的技術;或是,作業系統也可以通過快速的在不同執行緒之間進行切換,由於時間間隔很小,來給使用者造成一種多個執行緒同時執行的假象。
參考資料:
1.* From Wikipedia-Process (computing)*:https://en.wikipedia.org/wiki/Process_(computing)
2. JavaScript 深入淺出 Event Loop、Job Queue:https://shawnlin0201.github.io/JavaScript/JavaScript-Event-Loop-and-Job-Queue/
3. 如何理解單執行緒、多執行緒?如何選擇多執行緒、多程序?:https://www.itread01.com/ixyfq.html
4. 以生活的例子說明單執行緒和多執行緒:https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/432463/#outline__6
5. JavaScript - 單執行緒、同步與非同步:https://chiangyuchi.github.io/2019/02/09/2019-02-10/
6. JavaScript 單執行緒(Single Thread):https://hoyis-note.coderbridge.io/2021/05/17/javascript-%E5%96%AE%E5%9F%B7%E8%A1%8C%E7%B7%92-%E5%90%8C%E6%AD%A5%E5%92%8C%E9%9D%9E%E5%90%8C%E6%AD%A5/
7. 浅析 JS 中的 EventLoop 事件循环(新手向):https://segmentfault.com/a/1190000019313028
8. 異步程式設計與事件迴圈:https://eyesofkids.gitbooks.io/javascript-start-from-es6/content/part4/eventloop.html