1. 程式人生 > >201671010128 2017-12-17《Java程序設計》之並發

201671010128 2017-12-17《Java程序設計》之並發

內存 調用 單位 概念 light del 特征 課程學習 必須

一、基本概念

  1. 程序是一段靜態的代碼,它是應用程序執行的藍本。
  2. 進程是程序的一次動態執行,它對應了從代碼加載、執行至執行完畢的一個完整過程。
  3. 操作系統為每個進程分配一段獨立的內存空間和系統資源,包括:代碼數據以及堆棧等資源。每一個進程的內部數據和狀態都是完全獨立的。
  4. 多任務操作系統中,進程切換對CPU資源消耗較大。
  5. 多線程是進程執行過程中產生的多條執行線索。
  6. 線程是比進程執行更小的單位。
  7. 線程不能獨立存在,必須存在於進程中,同一進程的各線程間共享進程空間的數據。
  8. 每個線程有它自身的產生、存在和消亡的過程,是一個動態的概念。
  9. 多線程意味著一個程序的多行語句可以看上去幾乎在同一時間內同時運行。
  10. 線程創建、銷毀和切換的負荷遠小於進程,又稱為輕量級進程(lightweight process)。

二、線程的中斷

  1. 當線程的run方法執行方法體中最後一條語句後,並經由執行return語句返回時,或者出現了在方法中沒有捕獲的異常時,線程將終止,讓出CPU使用權。
  2. 調用interrupt()方法也可終止線程。interrupt()方法不僅可中斷正在運行的線程,而且也能中斷處於blocked狀態的線程,此時interrupt()方法會拋出一個InterruptedException異常。
  3. Java提供了幾個用於測試線程是否被中斷的方法。

三、線程的狀態

  1. 通過各線程的狀態變換,可以控制各個線程輪流使用CPU,體現多線程的並行性特征。
  2. 線程一共有如下6種狀態:
  • New (新建)
  • Runnable (可運行)
  • Blocked (被阻塞)
  • Waiting (等待)
  • Timed waiting (計時等待)
  • Terminated (被終止)

四、面向對象程序設計課程學習進度條

周次 (閱讀/編寫)代碼的行數 發布博客量/評論博客數量 課堂/課余學習時間(小時) 最滿意的編程任務
第一周 20/7 1/1 6/4 編寫Hello world程序
第二周 38/20 1/1 6/5 實驗二 任務三
第三周 50/30 1/1 6/7 實驗三
第四周 58/46 1/1 6/5 編寫輸出N位數各位數字,及求和
第五周 67/53 1/1 6/6 類的定義與重載
第六周 71/60 1/1 6/4 接口
第八周 80/66 1/1 6/3 Lamdba表達式
第九周 85/60 1/1 6/2 ID的操作
第十周 121/80 1/1 6/2 實驗九
第十一周 120/84 1/1 6/2 實驗十
第十二周 131/90 1/1 6/2 實驗十一
第十三周 130/100 1/1 6/2 實驗十二
第十四周 120/90 1/1 6/2 實驗十三
第十五周 124/90 1/1 6/2 實驗十四
第十六周 130/80 1/1 6/2 實驗十四
第十七周 130/90 1/ 6/2 並發
......
累計 1545/959 17/16 96/52

201671010128 2017-12-17《Java程序設計》之並發