請仔細理解如下的通俗描述
有乙個老闆想要開個工廠進行生產某件商品(例如剪子)
他需要花一些財力物力製作一條生產線,這個生產線上有很多的器件以及材料這些所有的 為了能夠生產剪子而準備的資源稱之為:程序
只有生產線是不能夠進行生產的,所以老闆的找個工人來進行生產,這個工人能夠利用這些材料最終一步步的將剪子做出來,這個來做事情的工人稱之為:執行緒
這個老闆為了提高生產率,想到3種辦法:
(1)在這條生產線上多招些工人,一起來做剪子,這樣效率是成倍増長,即單程序 多執行緒方式
(2)老闆發現這條生產線上的工人不是越多越好,因為一條生產線的資源以及材料畢竟有限,所以老闆又花了些財力物力購置了另外一條生產線,然後再招些工人這樣效率又再一步提高了,即多程序 多執行緒方式
(3)老闆發現,現在已經有了很多條生產線,並且每條生產線上已經有很多任務人了(即程式是多程序的,每個程序中又有多個執行緒),為了再次提高效率,老闆想了個損招,規定:如果某個員工在上班時臨時沒事或者再等待某些條件(比如等待另乙個工人生產完謀道工序 之後他才能再次工作) ,那麼這個員工就利用這個時間去做其它的事情,那麼也就是說:如果乙個執行緒等待某些條件,可以充分利用這個時間去做其它事情,其實這就是:協程方式
簡單總結
程序是資源分配的單位
執行緒是作業系統排程的單位
程序切換需要的資源很最大,效率很低
執行緒切換需要的資源一般,效率一般(當然了在不考慮gil的情況下)
協程切換任務資源很小,效率高
多程序、多執行緒根據cpu核數不一樣可能是並行的,但是協程是在乙個執行緒中 所以是併發
執行緒程序以及協程的區別
程序,儲存在硬碟上的程式執行之後,會在記憶體裡形成乙個獨立的記憶體體,這個記憶體體有自己獨立的位址空間,有自己的堆,上級掛靠單位是作業系統,作業系統會以程序為單位分配系統資源 cpu時間片,記憶體等資源 程序是資源分配的最小單位。執行緒也成為輕量級執行緒,是作業系統排程 cpu排程 執行的最小單位 ...
程序 執行緒 協程理解
批處理 指乙個處理完了另乙個再處理 程序 即每個程式的執行的 全部流程 加上執行現場 當前執行場景 併發 因為多個程式在乙個cpu上不斷切換,人類看起來如同程式在同時執行,這就是併發 並行 即多個程式同時在多個cpu上執行,就是並行 執行緒 程序內部,有多個執行流程 加上每個流程的執行場景 這個流程...
簡單理解 程序 執行緒 協程
從計算機硬體角度 計算機的核心是cpu,所有計算任務都由cpu負責。單個cpu核心,在乙個cpu時間片裡,只能執行乙個程式任務。台式電腦 intel i5 處理器 四核四執行緒 四個cpu核心,每個核心有乙個邏輯處理器 同時可以處理四個任務。台式電腦 intel i7 處理器 四核八執行緒 inte...