1. 程式人生 > >《java併發程式設計的藝術》筆記第一章

《java併發程式設計的藝術》筆記第一章

第一章併發程式設計的挑戰

目錄

第一章併發程式設計的挑戰

第一章併發程式設計的挑戰

1.1上下文切換

1.2 死鎖

 避免死鎖的幾個常見方法

1.3 資源限制的挑戰

個人總結


 


第一章併發程式設計的挑戰

1.1上下文切換

  • CPU時間片上線文切換會影響多執行緒的執行速度
  • 測量上線文切換次數和時長
    • Lmbench3
    • vmstat
  • 如何減少上線文切換
    • 無鎖併發程式設計
    • CAS演算法
    • 協程:在單執行緒裡實現多工的排程,並在單執行緒裡維持多個任務間的切換

1.2 死鎖

  •  避免死鎖的幾個常見方法

    • 避免一個執行緒同時獲取多個鎖
    • 避免一個執行緒在鎖內同時佔用多個資源,儘量保證每個鎖只佔用一個資源
    • 嘗試使用定時鎖,使用lock.tryLock(timeout)來替代使用內部鎖機制
    • 對於資料庫鎖,加鎖和解鎖必須在一個數據庫連線裡,否則會出現解鎖失敗的情況

1.3 資源限制的挑戰

  1. 什麼是資源限制
    • 計算機硬體或軟體資源
  2. 資源限制引發的問題

  3. 如何解決資源限制的問題

  4. 在資源限制情況下進行併發程式設計

個人總結

          概要的說明了併發面臨的問題和解決方式。