Program, Process, Thread 介紹


  1. Program就像是原始碼 , 在IDE編輯修改但還沒執行的程式

  2. Process就像是一個獨立空間, 把各種電腦的實體資源占用下來, 留給程式來執行

  3. Thread就像是執行任務的子空間, 乘載著Process裡頭各種任務

可以得知, 多個Process資源不共用, 而一個Process裡頭可以有很多個Thread, 這些Thread可以共用Process空間裡的資源, 同時這些Thread間也可以互相存取。在同個Process裡頭, 也可以自由的新增/刪減Thread 在C#裡頭, 同樣也有對應的API可以取得正在執行程式的Process ID以及對應的Thread資訊, 可以參考以下的程式碼

  • 使用到了兩個類別Process跟ProcessThread, 都隸屬於System.Diagnostics命名空間

static void Main(string[] args)
  { 
     Process proc = Process.GetCurrentProcess();  
     Console.WriteLine("This is a thread demo");
     Console.WriteLine("PID={0}", proc.Id);
     foreach (ProcessThread item in proc.Threads)
     {
         Console.WriteLine("Thread ID={0}, Name={1}", item.Id);
     }
     Console.ReadKey();
  }

執行結果如下:



1 次瀏覽

©JYTEK Taiwan 2019