1. 程式人生 > 其它 >多程序、多執行緒實現多工

多程序、多執行緒實現多工

多工

  多工是指在同一時間內執行多個任務。

  多工的最大好處是充分利用CPU資源,提高程式的執行效率。

實現方式

併發

  在一段時間內交替去執行多個任務。對於單核CPU處理多工,作業系統輪流讓各個任務交替執行。

並行(真正意義上的同時執行)

  在一段時間內真正的同時一起執行多個任務。對於多核CPU處理多工,作業系統會給CPU的每個核心安排一個執行的任務,多個核心是真正的一起同時執行多個任務。這裡需要注意多核CPU是並行的執行多工,始終有多個任務一起執行。

程序

  程序(Process)是資源分配的最小單位,它是作業系統進行資源分配和排程執行的基本單位,通俗理解:一個正在執行的程式就是一個程序.例如正在執行的qq,微信等他們都是一個程序。

  主程序預設會等待所有子程序執行結束後才會結束,可以通過設定子程序守護主程序實現主程序結束,子程序自動銷燬。

執行緒

  程序是分配資源的最小單位,一旦建立一個程序就會分配一定的資源,就像跟兩個人聊QQ就需要開啟兩個QQ軟體,一樣是比較浪費資源的。

  執行緒是程式執行的最小單位,實際上程序只負責分配資源,而利用這些資源執行程式的是執行緒,也就說程序是執行緒的容器,一個程序中最少有一個執行緒來負責執行程式.同時執行緒自己不擁有系統資源,只需要一點兒在執行中必不可少的資源,但它可與同屬一個程序的其它執行緒共享程序所擁有的全部資源.這就像通過一個QQ軟體(一個程序)開啟兩個視窗(兩個執行緒)跟兩個人聊天一樣,實現多工的同時也節省了資源。

  主執行緒預設會等待所有子執行緒執行結束後才會結束,可以通過設定子執行緒守護主執行緒實現主執行緒結束,子執行緒自動銷燬。

  執行緒之間執行是無序的,是由CPU排程決定某個執行緒先執行的。

程序和執行緒的對比

關係對比

  1.執行緒是依附在程序裡面的,沒有程序就沒有執行緒。

  2.一個程序預設提供一條執行緒,程序可以建立多個執行緒。

區別對比

  1.建立程序的資源開銷要比建立執行緒的資源開銷要大
  2.程序是作業系統資源分配的基本單位,執行緒是CPU排程的基本單位
  3.執行緒不能夠獨立執行,必須依存在程序中

優缺點對比 

1.程序優缺點:
  優點:可以用多核
  缺點:資源開銷大
2.執行緒優缺點:
  優點:資源開銷小
  缺點:不能使用多核