非同步程式設計 – 概念

Process

Windows 系統使用 Process 作為應用程式的基本單位,但因為共用 CPU,所以只有一個 CPU 且忙碌就會導致卡死


Thread

Windows 系統用來虛擬化 CPU 的概念,會用來切割並分配 CPU

每個應用程式運行時,會有一個主執行緒(main thread)


創建 Thread 的成本

創建 Thread 會需要最低成本的記憶體與時間分配來建置環境

Context Switch 工作執行到一半需要分配給別的 thread 時,需要暫存當前的內容,所以增加了儲存跟讀取的成本


執行優先順序

Windows 有 32 個等級,Windows 啟動時,會分配給自己一個優先等級最高的 0 執行緒,或稱零頁執行緒(zero page thread)

為了簡化優先設定問題,Process 提供 6種

  • RealTime (即時)
  • High
  • Above Normal
  • Normal
  • Below Normal
  • Idle (閒置)

 

var p = System.Diagnostics.Process.GetCurrentProcess();
p.PriorityClass = ProcessPriorityClass.Normal;

Thread : 

Net CLR 保留了 Idle 與 Time-Critical 給自己,故 Thread 沒有 Idle 與 Time-Critical


.NET 本事-非同步程式設計筆記

print

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *