1. 程式人生 > 實用技巧 >ICPC Central Russia Regional Contest (CRRC 19)

ICPC Central Russia Regional Contest (CRRC 19)

併發:指的是兩個或者多個事件(任務) 在同一時間段內發生的。
並行:指的是兩個或者多個事件(任務)在同一時刻發生(同時發生)。

 執行緒與程序
  • 程序:是指一個記憶體中執行的的應用程式,每個程序都有一個獨立的記憶體空間,一個應用程式可以同時執行多個執行緒;程序也是程式的一次執行過程,是系統執行程式的基本單位;系統執行一個程式就是一個程序從建立、執行到消亡的過程。
  • 執行緒:執行緒是程序中的一個執行單元,負責當前程序中程式的執行,一個程式中至少有一個執行緒。一個程序可以有多個執行緒,這個應用程式也可以稱之為多新執行緒程式。

簡而言之,一個程式執行後至少有一個程序,一個程序中可以包含多個執行緒。

備註:單核處理器的計算機肯定不能並行的處理多個任務的,只能是多個任務在單個cpu上併發的執行。同理,執行緒也是一樣的,從巨集觀角度上理解執行緒是一種並行執行的,但是從微觀上分析並行執行不可能,即需要一個一個執行緒的去執行,當系統只有一個cpu的時候,執行緒會以某種順序執行多個執行緒,我們把這種情況稱之為執行緒排程。

執行緒排程:

  • 分時排程:所有的執行緒輪流使用CPU的使用權,平均分配給每個執行緒佔用CPU的時間
  • 搶佔式排程:優先讓優先順序高的執行緒使用CPU,如果執行緒的優先順序相同,那麼會隨機一個執行緒 執行,Java使用的就是搶佔式排程方式來執行執行緒程式。
  • 設定執行緒的優先順序