Program就像是原始碼 , 在IDE編輯修改但還沒執行的程式
Process就像是一個獨立空間, 把各種電腦的實體資源占用下來, 留給程式來執行
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();
}
執行結果如下:
Comments