1. 程式人生 > 實用技巧 >多程序多執行緒

多程序多執行緒

在這裡插入圖片描述
併發程式設計有兩種模型一種是多程序,一種是多執行緒
對於多程序來說,每個程序程序只有一個執行緒,程序間是可以相互通訊的,程序中通訊的方式有很多種,比如檔案,訊息佇列,管道,
第二種併發模型是多執行緒,對於多執行緒而言,一個程序可有兩個或多個執行緒,執行緒之間通過共享記憶體的方式進行通訊,那麼對於這兩個併發模型而言,各自的優缺點:
多執行緒:

  1. 相對於一個程序而言,多執行緒的啟動速度快,因為作業系統需要分配一系列的內部資源去管理程序,執行緒通常被認為是更輕量級的,
  2. 開銷更低,程序的開銷更大,(作業系統需要對程序提供很多的保護,而且通過共享記憶體的方式比通過檔案管道或者是訊息佇列的速度要快得多,總而言之多執行緒要比多程序的效能優越)
  3. 但是多執行緒也有它的缺點,它的缺點就是很難管理,有很多執行緒的特定問題需要被小心的處理(死鎖等)
  4. 另一個問題就是他不能在分散式的系統下執行,程序則沒有這個問題,在實際的專案中我們經常會看到多程序和多執行緒混合使用

對與一個程式來說,一些程序是單執行緒的,一些程序是多執行緒的,主要討論多執行緒

引用