1. 程式人生 > >[CareerCup] 16.1 Thread and Process 執行緒和程序

[CareerCup] 16.1 Thread and Process 執行緒和程序

16.1 What's the difference between a thread and a process?

程序Process是程式執行時的一個例項。一個程序是被分配系統資源的獨立單元,每個程序在獨立的地址空間上執行,如果需要使用其他程序的資源,需要使用程序間通訊,包括管道Pipes,檔案Files,套接字Sockets,或者其他形式。

執行緒Thread存在於程序之中並分享程序的資源(包括堆空間)。同一個程序中的多個執行緒分享同一個堆地址。這是和程序區別很大的地方,程序之間不能直接訪問記憶體。每個執行緒仍然有自己的棧,但是其他執行緒可以讀寫堆記憶體。

一個執行緒是一個程序的特殊執行路徑,當一個執行緒修改了程序的資源,其他執行緒能立馬察覺到改變。