日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

20165223《Java程序设计》第八周Java学习总结

發布時間:2023/12/13 java 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20165223《Java程序设计》第八周Java学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

教材學習內容總結

第12章-JAVA多線程機制

要點

  • Java中的線程
  • Thread類與線程的創建
  • 線程的常用方法
  • 線程同步
  • 協調同步的線程
  • 線程聯合
  • GUI線程
  • 計時器線程

教材學習中的問題和解決過程

1. 進程與線程

  • 程序:靜態的代碼,應用執行的藍本
  • 進程:程序的一次動態的執行過程
  • 線程:比進程更小的執行單位,一個進程可以產生多個線程;線程的終端與恢復能節省系統開銷;多線程的進程更實用

2. 主線程

  • 即main線程,是JVM加載代碼,發現main方法后啟動的線程
  • 當main方法返回時,JVM結束Java應用程序(虛擬機自動退出)
  • JVM要等到Java程序中所有線程都結束后才結束Java應用程序

3. 線程的狀態與生命周期

Java語言使用Thread類及其子類的對象來表示線程

  • 四種狀態
    • 新建:一個Thread類或其子類的對象被聲明并創建,已經有了相應的內存空間和其他資源
    • 運行
      • JVM將CPU使用權切換給該線程時,此線程就可以脫離創建它的主線程獨立開始自己的生命周期
      • 線程創建后僅占有內存資源,必須調用start()方法(從父類處繼承的方法)通知JVM,告知新進程在排隊
      • 程序必須在子類中重寫父類的run()方法,在線程沒有結束run()方法之前,不要讓線程再調用start()方法,否則將發生IllegalThreadStateException異常
    • 中斷:四種中斷原因:
      • JVM將CPU資源從當前線程切換給其他線程,使本線程讓出CPU的使用權處于中斷狀態
      • 線程使用CPU資源期間,執行了sleep(int millsecond)方法,使當前線程進入休眠狀態
      • 執行了wait()方法,使得當前線程進入等待狀態,必須由其他線程調用notify()方法通知它,使得它重新進到線程隊列中排隊等待CPU資源
      • 執行某個操作進入阻塞狀態,比如執行讀/寫操作引起阻塞。只有當引起阻塞的原因消除時,線程才重新進到線程隊列中排隊等待CPU資源
    • 死亡:線程結束后就不再具有繼續運行的能力,釋放掉分配給線程對象的內存。兩種死亡原因:
      • run()方法正常執行完后結束
      • run()方法被提前強制性地終止

4. 線程調度與優先級

  • 沒有明確設置線程的優先級別,則優先級默認都是5,即Thread.NORM_PRIORITY
  • 線程優先級通過setPriority(int grade)方法調整,需要一個int型參數,且參數范圍在1~10內,即在Thread.MIN_PRIORITY和Thread.MAX_PRIORITY,若不再這個范圍內就拋出IllegalArgumenException異常

5. Thread類與線程的創建

  • Thread類
    • 構造方法:Thread(Runnable target)
    • 參數:構造方法的參數是一個Runnable類型的接口
    • 實例:要向參數傳遞一個Runnable接口類的實例

6. 線程常用方法

  • start():線程調用該方法將啟動線程,使之從新建狀態進入就緒隊列排隊,一旦輪到它來享用CPU資源時,就可以脫離創建它的線程獨立開始自己的生命周期
  • run():Thread類的run()方法與Runnable接口中的run()方法的功能和作用相同,都用來定義線程對象被調度之后所執行的操作,都是系統自動調用而用戶程序不得引用的方法
  • sleep(int millsecond):優先級高的線程可以在它的run()方法中調用sleep方法來使自己放棄CPU資源,休眠一段時間
  • isAlive():線程處于“新建”狀態時,線程調用isAlive()方法返回false。在線程的run()方法結束之前,即沒有進入死亡狀態之前,線程調用isAlive()方法返回true
  • currentThread():該方法是Thread類中的類方法,可以用類名調用,該方法返回當前正在使用CPU資源的線程
  • interrupt():一個占有CPU資源的線程可以讓休眠的線程調用interrupt()方法“吵醒”自己,即導致休眠的線程發生InterruptedException異常,從而結束休眠,重新排隊等待CPU資源

7. 協調同步的線程

  • 線程同步:即若干個線程都需要使用一個synchronized修飾的方法.即程序中的若干個線程都需要使用一個方法,而這個方法用synchronized給予了修飾
  • 同步方法:wait()、notify()、notifyAll()。都是Object類的final方法,被所有類繼承且不允許重寫
  • 不可以在非同步方法中使用wait()、notify()、notifyAll()

思考與感悟

本章了解了Java的另一大特點——線程。經過學習我了解到,掌握多線程編程技術就能充分利用CPU的資源,在實際問題中應用的更加廣泛、更加方便。

代碼托管

詳見碼云:碼云作業

學習進度條

代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
目標3000行30篇400小時
第八周1324/2002/1120/20深入

參考資料

  • 教學視頻
  • Intellj IDEA 簡易教程
  • 轉載于:https://www.cnblogs.com/moddy13162201/p/8908464.html

    總結

    以上是生活随笔為你收集整理的20165223《Java程序设计》第八周Java学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。