- 已經被 loading 到 memory 中,每一行code 都會被執行,且記憶體會隨著需求而有所改變稱之為「程序」,活的program。
- CPU 一次只能執行一個Process,所以若要執行多個processes 就需要「排程」(Scheduling)。
Thread:
- 在同一個Process底下,有許多自己的分身,就是Thread「執行緒」。
- 一個process 一次只能做一件事,在process下create threads,就能讓一個process一次做多件事。
- Thread 必須注意共用同一個process下的global variable,若兩個thread 同時對一個varible做運算,可能會造成結果有錯誤這就是「synchronization」的問題。
- Thread 也要避免「deadlock」的產生,deadlock 主要原因是一個thread 需要多個資源,而占用資源時還需要其他資源,占用資源也時也沒有例外處理的機制,導致多個thread 之間互相占用對方資源形成一個loop。