處理程序與執行緒:從日常生活理解多執行緒
處理程序(Process)和執行緒(Thread)是作業系統的核心概念,也是理解並行程式設計的起點。用一個生活比喻來拆解兩者的差異,往往比讀定義清楚得多。 處理程序 vs 執行緒:一個家庭的故事想像有一個家庭經營著一間小餐廳。在這個比喻中: 整個餐廳就像一個處理程序 家庭成員則是執行緒 處理程序(餐廳) 擁有自己的資源:廚房設備、座位區、食材等 有獨立的記憶體空間:存放菜單、庫存清單等資訊 啟動和關閉成本較高:開店和打烊需要較多時間和精力 執行緒(家庭成員) 共享餐廳的資源 可以快速切換任務:爸爸可以從煮菜轉去招呼客人 建立和銷毀成本較低:家庭成員可以快速加入工作或休息 多執行緒:實際跑起來是什麼樣子這個家庭實際跑起來的樣子: 並行處理: 媽媽在廚房煮菜 爸爸在前台招呼客人 哥哥負責送餐 妹妹處理結帳 資源共享:所有人共用廚房的爐子、冰箱,不需要每個人準備一套。 動態調度:前台突然湧入大批客人時,爸爸可以直接喊哥哥過來幫忙——對應執行緒在同一份共享記憶體上協作,切換成本遠低於重新開一間分店(另起一個處理程序)。 多執行緒的優缺點優點 提高系統吞吐量 改善反應...




