天天看點

多線程的基本概念

1.程式

程式(Program)”是一個靜态的概念,一般對應于作業系統中的一個可執行檔案,比如:我們要啟動酷狗聽音樂,則需要執行酷狗對應的的可執行程式。當我們輕按兩下酷狗的可執 行程式後作業系統會将該程式加載到記憶體中,開始執行該程式,于是産生了“程序”。

2.程序

  1. 程序是程式的一次動态執行過程, 占用特定的位址空間。
  2. 每個程序由 3 部分組成:cpu、data、code。每個程序都是獨立的,保有自 己的 cpu 時間,代碼和資料,即便用同一份程式産生好幾個程序,它們之間 還是擁有自己的這 3 樣東西,這樣的缺點是:浪費記憶體,cpu 的負擔較重。
  3. 多任務(Multitasking)作業系統将 CPU 時間動态地劃分給每個程序,操作系 統同時執行多個程序,每個程序獨立運作。以程序的觀點來看,它會以為自己 獨占 CPU 的使用權。
  4. 程序的檢視

    Windows 系統: Ctrl+Alt+Del,啟動任務管理器即可檢視所有程序。

3.線程

  1. 一個程序内部的一個執行單元,它是程式中的一個單一的順序控制流程。
  2. 一個程序可擁有多個并行的(concurrent)線程。
  3. 一個程序中的多個線程共享相同的記憶體單元/記憶體位址空間,可以通路相同的 變量和對象,而且它們從同一堆中配置設定對象并進行通信、資料交換和同步操作。
  4. 由于線程間的通信是在同一位址空間上進行的,是以不需要額外的通信機制, 這就使得通信更簡便而且資訊傳遞的速度也更快
  5. 線程的啟動、中斷、消亡,消耗的資源非常少。
    多線程的基本概念