2017年2月20日 星期一

Process & Thread

Process:

  1.  已經被 loading 到 memory 中,每一行code 都會被執行,且記憶體會隨著需求而有所改變稱之為「程序」,活的program。
  2. CPU 一次只能執行一個Process,所以若要執行多個processes 就需要「排程」(Scheduling)。


Thread:

  1. 在同一個Process底下,有許多自己的分身,就是Thread「執行緒」。
  2. 一個process 一次只能做一件事,在process下create threads,就能讓一個process一次做多件事。
  3. Thread 必須注意共用同一個process下的global variable,若兩個thread 同時對一個varible做運算,可能會造成結果有錯誤這就是「synchronization」的問題。
  4. Thread 也要避免「deadlock」的產生,deadlock 主要原因是一個thread 需要多個資源,而占用資源時還需要其他資源,占用資源也時也沒有例外處理的機制,導致多個thread 之間互相占用對方資源形成一個loop。 








沒有留言:

張貼留言

linux - IPC (inter-processes communication) Shered mempry(共用記憶體)

IPC (inter-processes communication) 顧名思義,processes 之間溝通的管道&機制。 Shared memory   程式間可以共享memory Message Queue  程式間傳送資訊最簡單的方法 Semaphore...