Thread 和 Process 差異

Thread
同一個task之間可以共享data(code section, data section)
Process則否。

Thread的context switching較輕。

Process只有單一的thread。

Thread: 內只要還有可以用的threads, process就不會停

Threads之間需要提供資料的互斥保護,防止threads之間不正常運作引起之危害。

multithread之缺點

  1. 有順序的process不適用, ex. Shell program, printer。
  2. 小程式, 簡單的嵌入式硬體/chips

multithread之優點

  1. Responsiveness
  2. Resource sharing
  3. Economy
  4. Utilization of multiprocessor architectures

Process比Thread差的地方

Process需要配置新的address space and other OS resources, 且有共享記憶體的情形,則需要另外處理process communication之overhead。較Thread creation cost高。