C#_Process跟Thread深入研究探討(二)_Task使用總整

https://www.rover.com/blog/puppy-feeding-schedule-everything-need-know/ 融入生活的例子 某一天你的主管突然開始交付了 你無法負荷的工作量時此時又每天問候工作進度 開始就會有一些任務停擺因為你還有其他任務要做的問題發生 這個工作因為我在處理A需求因為比較緊急 所以暫時還沒處理 此時是不是考慮要雇用更多員工幫忙處理任務.........etc Process 行程(進程)/處理(程)序 就是一個運行的程式,再白話一些你可以說任一exe開啟執行的都算是.. 你任何一支無論用C# 、Java、VB.NET、C開發編譯出來的執行檔一被執行時 就會產生Process 你開的任何一個IE、Chrome瀏覽器或其他桌面端應用程式、Word、PowerPoint 也會產生一個Process 每個獨立的執行檔案於開啟時都會於作業系統 中被加載至內存並分配到一組資源來利用 此時我們就稱之為各個單獨的Process,相互不影響彼此。 提問:為何這麼設計?? 主要也在於當一支程式掛掉時不會連動到其他程式的安全隔離用意。 雖然呀 ~~我們的應用程式和作業系統之間 已經透過Process的概念來達到隔離保護的效果。 但是必須要瞭解它們 仍共用著同樣的CPU資源 因此一台股老機器若CPU只有一顆當某一支應用程式陷入無窮迴圈 則唯一的CPU就為變成只忙著跑該程式,進而無暇控管其餘程式的運行。 因此導致鎖死,因而沒有任何回應。 為了解決多個應用程式共用同一CPU的問題(CPU無法分身) 隨之所產生出Thread的概念。 Thread 執行緒(線程) 則是Process中的組成單元(基本執行單元) 在 Jeffrey Richter 先生所撰寫的 "CLR via C#" 一書中提到 「執行緒是Windows作業系統用來虛擬化CPU的概念」 更進一步解釋到 Windows OS 會配給每一個Process一個獨一無二 專屬的Thread(功能近似於縮小版本的CPU) 因此也可理解為執行緒就是所謂用來切割CPU執行時間之基本單位。 因此現在你啟動工作管...