精華區beta CSSE 關於我們 聯絡資訊
※ 引述《nwoyoyoyo (YoYoYo)》之銘言: : 前提:我寫了一支MultiThread的程式Demo給老闆看 : 我老闆說:Process 跟 Thread到底有什麼差別?Why Thread?Why not Process? : 我說:Process比較Heavy Thread比較Ligth,所以context switch的時候比較省力 : 老闆說:竟然它是用Heavy跟Ligth來作對比, : 那使用Process跟使用Thread的時機差在哪嗎? : 有明確的定義跟使用時機嗎? : 我說: Thread可以Share Memory加上速度比較快 : 所以現在大部分在寫多工的程式時通常都用Thread : 老闆說:一定會有人Well-Defined Procee跟Thread的使用時機的 : 去給我找出來到比差在哪裡? : 個位大爺,可以給我一些好意見嗎?什麼樣的意見都好,砍掉重練也可以的啦!謝了! : 當然User-Thread跟Kernal-Thread的各種不同解釋也是ok的啦? kernel level thread: thread直接由OS核心排程 又稱為light weight process, scheduling is as complex as processes but data sharing is cheaper User level thread: 由核心觀點來看仍是排程一個單一process thread schedulling是由該process自己做 無法直接將thread分到不同cpu上跑 "share memory"通常是指在不同process之間共享同一塊資料 thread則是本身就是共享同一塊記憶體空間 (當然各自還是有一塊空間在放像pc, stack這些資訊) proecss所需的系統資源遠較thread 我沒有統計資料 但試想一個web server有可能針對每個使用者開一個process去服務嗎? 另外不能說使用thread較容易當機 會當機多是程式設計不良所造成的 (有沒有注意到同步問題?有沒有注意deadlock?用沒有用thread-safe functions?) 只能說除錯比較麻煩囉 : 總之...什麼意見都好...只要你肯教我一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.48.72