1. 程式人生 > 實用技巧 >《深入淺出Java多執行緒》筆記

《深入淺出Java多執行緒》筆記

本書網站

基礎篇

批處理作業系統記憶體裡只能有一個程式,指令序列執行、效率低。於是引入程序(記憶體裡分配了空間、正在執行的程式)的概念,加上CPU時間片輪轉,實現了併發。後來人們不滿於程序只能執行一個任務,引入執行緒的概念,於是QQ上可以一邊聊天一邊下載檔案了。總結一下,就是程序讓作業系統的併發性成為了可能,而執行緒讓程序的內部併發成為了可能。

相比多程序,多執行緒實現併發有一些好處:

  • 通常需要使用共享資源,執行緒間的通訊比較簡單
  • 執行緒是輕量級的,系統開銷更小

程序和執行緒的區別:

  • 本質區別是是否單獨佔有記憶體地址空間及其它系統資源(比如I/O)
    • 程序單獨佔有一定的記憶體地址空間,資料共享複雜但是同步簡單
    • 一個程序出現問題不會影響其他程序,可靠性高
    • 程序的建立和銷燬不僅需要儲存暫存器和棧資訊,還需要資源的分配回收以及頁排程,開銷較大
  • 程序是OS進行資源分配的基本單位,而執行緒是OS進行排程(CPU分配時間)的基本單位