201711671202《Java程式設計》第十一週學習總結
教材學習內容總結
1.
程序是程式的一次動態執行過程,它對應了從程式碼載入、執行至執行完畢的一個完整過程,這個過程也是程序本身從產生、發展至消亡的過程。
執行緒是比程序更小的執行單位,每個執行緒也有它自身的產生、存在和消亡的過程。
執行緒的中斷與恢復可以更加節省系統的開銷。
2.
多執行緒是指一個應用程式中同時存在幾個執行體,按幾條不同的執行線索共同工作的情況,它使得程式設計人員可以很方便地開發出具有多執行緒功能、能同時處理多個任務的功能強大的應用程式
3.
當JVM載入程式碼,發現main方法之後,就會啟動一個執行緒,這個執行緒稱為“主執行緒”(main執行緒),該執行緒負責執行main方法。
如果main方法中沒有建立其他的執行緒,當main方法返回時,JVM就會結束我們的Java應用程式。
如果main方法中又建立了其他執行緒,main方法即使執行完最後的語句(主執行緒結束),JVM也不會結束Java應用程式,JVM一直要等到Java應用程式中的所有執行緒都結束之後,才結束Java應用程式。
4.
使用Thread類及其子類的物件來表示執行緒。
執行緒建立後僅僅僅是佔有了記憶體資源,在JVM管理的執行緒中還沒有這個執行緒,此執行緒必須呼叫start()方法(從父類繼承的方法)通知JVM,這樣JCM就會知道又有一個新執行緒排隊等候切換了。
如果執行緒是Thread的子類建立的,該類中的run()方法就立刻執行,run()方法規定了該執行緒的具體使命。
Thread類中的run()方法沒有具體內容,程式要在Thread類的子類中重寫run()方法來覆蓋父類的run()方法。
5.
執行sleep(int millsecond)方法,使當前執行緒進入休眠狀態。經過引數millsecond指定的毫秒數之後,該執行緒就重新進到執行緒佇列中排隊等候CPU資源。
執行wait()方法,使得當前執行緒進入等待狀態。等待狀態的執行緒不會主動進到執行緒佇列中排隊等待CPU資源,必須由其他執行緒呼叫notify()方法通知它,使得它重新進到執行緒佇列中排隊等待CPU資源。
6.
執行緒死亡的原因有二,一個是正常執行的執行緒完成了它的全部工作,即執行完run()方法中的全部語句,結束了run()方法;另一個原因是執行緒被提前強制性地終止,即強制run()方法結束。
7.
每個java執行緒的優先順序都在常數1和10之間,即Thread.MIN_PRIORITY和Thread.MAX_PRIORITY。如果沒有明確地設定執行緒的優先級別,每個執行緒的優先順序都為常數5,即Thread.NORM_PRIORITY。
優先順序可以通過setPriority(int grade)方法調整。getPriority方法返回執行緒的優先順序。
如果有A、B、C、D四個執行緒,A和B的級別高於C和D,那麼,Java排程器首先以輪流的方式執行A和B,一直等到A、B都執行完畢進入死亡狀態,才會在C、D之前輪流切換。
8.
使用Thread子類建立執行緒的優點是:可以在子類中增加新的成員變數,使執行緒具有某種屬性,也可以在子類中新增加方法,使執行緒具有某種功能。
使用Thread建立執行緒通常使用的構造方法是:Thread(Runnable target)。
對於使用同一目標物件的執行緒,目標物件的成員變數自然就是這些執行緒共享的資料單元。
9.
線上程沒有結束run()方法之前,不贊成讓執行緒再呼叫start()方法,否則將發生IllegalThreadStateException異常。
必須在try-catch語句塊中呼叫sleep方法。
執行緒處於新建狀態時,執行緒呼叫isAlive()方法放回false。當一個執行緒呼叫start()方法,並佔用CPU資源後,該執行緒的run()方法就開始執行,線上程的run()結束之前,即沒有進入死亡狀態之前,執行緒呼叫isAlive()方法放回true。
一個已經執行的執行緒在沒有進入死亡狀態時,不要再給執行緒分配實體,由於執行緒只能引用最後分配的實體,先前的實體就會稱為“垃圾”,並且不會被垃圾收集器收集掉。
currentThread()方法是Thread類中的類方法,可以用類名呼叫,該方法返回當前正在使用CPU資源的執行緒。
當一些執行緒呼叫sleep方法處於休眠狀態時,一個佔有CPU資源的執行緒可以讓休眠的執行緒呼叫interrupt()方法“吵醒”自己,即導致休眠的執行緒發生InterruptedException異常,從而結束休眠,重新排隊等待CPU資源。
教材學習中的問題和解決過程
參考資料
《java 2實用教程(第5版)》
相關推薦
王穎奇 20171010129《面向物件程式設計(java)》第十一週學習總結
實驗十一 集合 實驗時間 2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握Array
徐思/楊玲《面向物件程式設計(Java)》第十一週學習總結
一、理論知識部分 一般將資料結構分為兩大類:線性資料結構和非線性資料結構。線性資料結構:線性表、棧、佇列、串、陣列和檔案。非線性資料結構:樹和圖。 線性表按其儲存結構可分為順序表和連結串列;用順序儲存結構儲存的線性表稱為順序表;順序表將線性表中的資料元素依次存放在某個儲存區域中。一維陣列就是用順序方式儲存
李曉菁201771010114《面向物件程式設計(Java)》第十一週學習總結
集合 一:.資料結構介紹 1.一般將資料結構分為兩大類:線性資料結構和非線性資料結構。 (1)線性資料結構:線性表、棧、佇列、串、陣列和檔案。 (2)非線性資料結構:樹和圖。 2.線性表: 3.連結串列:(1)單向連結串列 (2)迴圈連結串列 (3)雙向迴圈連結串列 4.棧:棧(Stack)
201771010135 楊蓉慶AND張燕 《面對物件程式設計(java)》第十一週學習總結
1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及常用API。 (4) 瞭解HashSet類、TreeSet類的用途及常用API。 (5)瞭解Ha
201771010112羅鬆《面向物件程式設計(java)》第十一週學習總結
1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及常用API。 (4) 瞭解HashSet類、TreeSet類的用途及常用AP
王豔 201771010127《面向物件程式設計(java)》第十一週學習總結
一:理論部分。 1.資料結構:分為a.線性資料結構,如線性表、棧、佇列、串、陣列和檔案。 b.非線性資料結構,如樹和圖。
馬昕璐/唐月晨 《面向物件程式設計(java)》第十一週學習總結
一:理論部分。 一般將資料結構分為兩大類:線性資料結構和非線性資料結構 線性資料結構:線性表、棧、佇列、串、陣列和檔案 非線性資料結構:樹和圖。 線性表:1.所有資料元素在同一個線性表中必須是相同的資料型別。 2. 線性表按其儲存結構可分為順序表和連結串列 3. 用順序儲存結構儲存的線性表稱為順序
王之泰/王志成《面向物件程式設計(java)》第十一週學習總結
第一部分:理論知識學習部分 第十一章理論知識主要為集合類的介紹,在實驗中都有所體現且本週主要複習回顧上週的泛型程式設計 第二部分:實驗部分 ——集合 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解jav
201771010101 白瑪次仁《面向物件程式設計(Java)》第十一週學習總結
實驗十一 集合 實驗時間 2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、Lin
張雲飛 201771010143 《面對物件程式設計(java)》第十一週學習總結
實驗十一 集合 實驗時間2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及
馬凱軍201771010116《面向物件與程式設計Java》第十一週學習總結
一.理論知識部分 第九章 集合 1.資料結構介紹:線性結構:線性表,棧,佇列,串,陣列,檔案。非線性結構:樹,圖。 散列表:又稱為雜湊表。 散列表演算法的基本思想是:以結點的關鍵字為自變數,通過一定的函式關係(雜湊函式)計算出對應的函式值,以這個值作為該結點儲存在散列表中的地址。當散列表中
王志成/王之泰《面向物件程式設計(java)》第十一週學習總結
理論學習部分: JAVA的集合框架 l JAVA的集合框架實現對各種資料結構的封裝,以降低對資料管理與處理的難度。 l 所謂框架就是一個類庫的集合,框架中包含很多超類,程式設計者建立這些超類的子類可較方便的設計設計程式所需的類。例如:Swing類包 l 集合(Collection或稱為容
201771010109焦旭超《面向物件程式設計(java)》第十一週學習總結
1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及常用API。 (4) 瞭解HashSet類、TreeSet類
馮志霞201771010107《面向物件程式設計(java)》第十一週學習總結
實驗十一 集合 實驗時間 2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及常用API。 (4) 瞭
201771010137 趙棟《面向物件程式設計(java)》第十一週學習總結
一:理論部分。 1.資料結構:分為a.線性資料結構,如線性表、棧、佇列、串、陣列和檔案。 b.非線性資料結
王玉蘭201771010128《面向物件與程式設計(Java)》第十一週學習總結
一:理論知識部分: (1)集合:集合(Collection或稱為容器)是一種包含多個元素並提供對所包含元素操作方法的類,其包含的元素可以由同一型別的物件組成,也可以由不同型別的物件組成。 A:集合類的作用:– Java的集合類提供了一些基本資料結構的支援。– 例如Vector、Hashtabl
孔維瀅201771010110 / 馮志霞《面向物件程式設計(java)》第十一週學習總結
理論知識部分 1.資料結構:一般將資料結構分為兩大類:線性資料結構和非線性資料結構。 線性資料結構
劉志梅2017710101152.《面向物件程式設計(java)》第十一週學習總結
實驗十一 集合 實驗時間 2018-11-8 1、實驗目的與要求 (1) Java最初版本只為最常用的資料結構提供了很少的一組類:Vector、Stack、Hashtable、BitSet與Enumeration介面,其中的Enumeration介面提供了一種用於訪問任意容器中各
達拉草201771010105《面向物件程式設計(java)》第十一週學習總結
達拉草201771010105《面向物件程式設計(java)》第十一週學習總結 實驗十一 集合 實驗時間 2018-11-8 第一部分:理論知識 1.集合(Collection或稱為容器)是一種包含多個元素 並提供對所包含元素操作方法的類,其包含的元 素可以