1. 程式人生 > >學習《java程式設計》第十二章學習總結

學習《java程式設計》第十二章學習總結

12Java多執行緒機制

程式是一段靜態的程式碼,它是應用軟體執行的藍本。

程序是程式的一次動態執行過程,它對應了從程式碼載入、執行至執行完畢的一個完整過程,這個過程也是程序本身從產生、發展至消亡的過程。

現代作業系統可以同時管理一個計算機系統中的多個程序,即可以讓計算機系統中的多個程序輪流使用CPU資源。

執行緒是比程序更小的執行單位,一個程序在其執行過程中,可以產生多個執行緒,形成多條執行線索,每條線索,即每個執行緒也有它自身的產生、存在和消亡的過程。

12.2   Java中的執行緒    

Java語言的一大特性點就是內建對多執行緒的支援

每個Java應用程式都有一個預設的主執行緒

12.2.3    執行緒的狀態與生命週期

新建: 當一個Thread類或其子類的物件被宣告並建立時,新生的執行緒物件處於新建狀態。

2.執行 :執行緒必須呼叫start()方法(從父類繼承的方法)通知JVM這樣JVM就會知道又有一個新一個執行緒排隊等候切換了。一旦輪到它來享用CPU資源時,此執行緒的就可以脫離建立它的主執行緒獨立開始自己的生命週期了。  

3.中斷:有4種原因的中斷:

JVMCPU資源從當前執行緒切換給其他執行緒,使本執行緒讓出CPU的使用權處於中斷狀態。

執行緒使用CPU資源期間,執行了sleep(int millsecond)方法,使當前執行緒進入休眠狀。

執行緒使用CPU資源期間,執行了wait()方法。

執行緒使用CPU資源期間,執行某個操作進入阻塞狀態。

4.死亡 :處於死亡狀態的執行緒不具有繼續執行的能力。執行緒釋放了實體

12.3.2    使用Thread

建立執行緒的另一個途徑就是用Thread類直接建立執行緒物件。使用Thread建立執行緒通常使用的構造方法是:

  Thread(Runnable target)   

在建立執行緒物件時必須向構造方法的引數傳遞一個實現Runnable介面類的例項,該例項物件稱作所創執行緒的目標物件,當執行緒呼叫start()方法後,一旦輪到它來享用CPU資源,目標物件就會自動呼叫介面中的

run()方法(介面回撥)。

執行緒間可以共享相同的記憶體單元(包括程式碼與資料),並利用這些共享單元來實現資料交換、實時通訊與必要的同步操作。

12.3.3    目標物件與執行緒的關係

1.目標物件和執行緒完全解耦

目標物件沒有組合執行緒物件.目標物件經常需要通過獲得執行緒的名字(因為無法獲得執行緒物件的引用)以便確定是哪個執行緒正在佔用CPU資源,即被JVM正在執行的執行緒。

  2.目標物件組合執行緒(弱耦合)

目標物件可以組合執行緒.目標物件類組合執行緒物件時, 目標物件可以通過獲得執行緒物件的引用. 

執行緒的常用方法

1.start() : 執行緒呼叫該方法將啟動執行緒,使之從新建狀態進入就緒佇列排隊,一旦輪到它來享用CPU資源時,就可以脫離建立它的執行緒獨立開始自己的生命週期了。

2.run(): Thread類的run()方法與Runnable介面中的run()方法的功能和作用相同,都用來定義執行緒物件被排程之後所執行的操作,都是系統自動呼叫而使用者程式不得引用的方法。

3.sleep(int millsecond): 優先順序高的執行緒可以在它的run()方法中呼叫sleep方法來使自己放棄CPU資源,休眠一段時間。  

4.isAlive(): 執行緒處於“新建”狀態時,執行緒呼叫isAlive()方法返回false。線上程的run()方法結束之前,即沒有進入死亡狀態之前,執行緒呼叫isAlive()方法返回true。

5.currentThread():該方法是Thread類中的類方法,可以用類名呼叫,該方法返回當前正在使用CPU資源的執行緒。  

6.interrupt() :一個佔有CPU資源的執行緒可以讓休眠的執行緒呼叫interrupt()方法“吵醒”自己,即導致休眠的執行緒發生InterruptedException異常,從而結束休眠,重新排隊等待CPU資源。     

12.5   執行緒同步

在處理多執行緒問題時,我們必須注意這樣一個問題:當兩個或多個執行緒同時訪問同一個變數,並且一個執行緒需要修改這個變數。我們應對這樣的問題作出處理。

在處理執行緒同步時,要做的第一件事就是要把修改資料的方法用關鍵字synchronized來修飾。

所謂執行緒同步就是若干個執行緒都需要使用一個synchronized修飾的方法。

相關推薦

Java程式設計學習總結

201711671111《Java程式設計》第十二章學習總結 Java多執行緒機制 1.程序與執行緒 程式是一段靜態程式碼,是應用軟體執行的藍本。 程序是程式的因此動態執行過程,它對應了從程式碼載入、執行至執行完畢的一個完整過程,這個過程也是程序本身從產生、發展至消亡的過程。

201711671105 《Java程式設計學習總結

教材學習內容總結 1、程序與執行緒 程序是程式的一次動態執行過程,它對應了從程式碼載入、執行至執行完畢的一個完整過程,這個過程也是程序本身從產生、發展至消亡的過程。 執行緒是比程序更小的執行單位,一個程序在其執行過程中,可以產生多個執行緒,形成多條執行線索,每條線索,即每個執行緒也有它自

201711671229 《Java程式設計學習總結

第十二章《Java多執行緒機制》 本章內容包括:Java中的執行緒、Thread類與執行緒的建立、執行緒的常用方法、執行緒同步、協調同步的執行緒、執行緒聯合、GUI執行緒、計時器執行緒。 一、程序與執行緒 1  作業系統與程序 程序是程式的一次動態執行過程。現代作業系統可以

201711671125 《Java程式設計學習總結

教材學習內容總結 第十二章 Java中的執行緒 多執行緒是指一個應用程式中同時存在幾個執行體,按幾條不同的執行線索共同工作的情況。 1.1主執行緒 每個Java應用程式都會有一個預設的主執行緒。當JVM載入程式碼,發現main方法之後,就會啟動一個執行緒,這個執行緒稱為

Java程式設計思想四版學習——通過異常處理錯誤(1)

使用異常帶來的好處: 它降低了錯誤處理程式碼的複雜度。使用異常後,不需要檢查特定的錯誤並在程式中的許多地方去處理它。因為異常機制將保證能夠捕獲這個錯誤且只需在一個地方處理錯誤,即異常處理程式中。 1、基本異常 異常情形:阻止當前方法或作用域繼續執行的問

學習java程式設計學習總結

第12章 Java多執行緒機制 程式是一段靜態的程式碼,它是應用軟體執行的藍本。 程序是程式的一次動態執行過程,它對應了從程式碼載入、執行至執行完畢的一個完整過程,這個過程也是程序本身從產生、發展至消亡的過程。 現代作業系統可以同時管理一個計算機系統中的多個程序,即可

馬凱軍201771010116《面向物件與程式設計Java學習總結

一、理論與知識學習部分 Java的抽象視窗工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了許多用來設計GUI的元件類和容器類。 大部分AWT元件都有其Swing的等價元件,Swing元件的名字一般是在AWT元件名前面新增一個字母“J”。 通常把由Co

深入理解計算機系統學習筆記

應用級併發應用情況:訪問慢速I/O裝置;與人互動;通過推遲工作以降低延遲;服務多個網路客戶端;在多核機器上進行併發計算。 三種基本構造併發程式的方法:程序、I/O多路複用、執行緒 1、基於程序的併發程式設計 例如構建一個併發伺服器: 假設有1個伺服器和2個客戶端,伺服器正在監聽lis

201771010118 馬昕璐《面向對象程序設計java學習總結

base 示例 program ngs ets each dimens ring zed 第一部分:理論知識學習部分 用戶界面:用戶與計算機系統(各種程序)交互的接口 圖形用戶界面:以圖形方式呈現的用戶界面 AET:Java 的抽象窗口工具箱包含在java.awt包中,它提

學習筆記

一,教材學習內容(12多執行緒機制) 1,程序與程序:執行緒不是程序,但執行緒的行為很像程序,執行緒是比程序更小的執行單位,一個程序在執行過程中,可以產生多個執行緒每個執行緒也有它自身產生,存在和消亡的過程。與程序不同的是,執行緒的中斷和恢復可以更加節省系統的開銷。 需要注意的是:沒有程序就

Introduction to 3D Game Programming with DirectX 12 學習筆記之 --- :幾何著色器(The Geometry Shader)

enable 中心 functions vector 是我 符號 ref rect 可能 原文:Introduction to 3D Game Programming with DirectX 12 學習筆記之 --- 第十二章:幾何著色器(The Geometry Sha

java基礎 (異常處理、工具類、集合)

重寫 trac com int 出現異常 sta 順序存儲 空指針異常 處理 一、異常處理 1.兩種異常: (1)程序員自身問題(運行時異常) (2)外界問題(可控異常) 2.兩種異常的詳細說明 (1)運行時異常

Objective-C 程式設計

預處理程式 預處理程式語句使用#開頭,一行中的第一個非空字元。 大部分內容都與C語言類似,相當於複習啦。 12.1 #define語句 - 巨集 預定義不是變數。不能為它賦值。實際上是

201711671103《JAVA程式設計多執行緒機制學習筆記

教材學習內容總結 1.執行緒是依附於程序的,程序是分配資源的最小單位,執行緒是比程序更小的執行單位。一個程序可以產生多個執行緒,形成多條執行線索。每條線索,即每個執行緒也有它自身的產生,存在和消亡過程,也是一個動態的概念。 2.JAVA 中的多執行緒機制:多執行緒是指一個應用程式同時存在好幾

201711671223《Java程式設計學習總結13Java網路程式設計

201711671223《Java程式設計》第十二周學習總結13章Java網路程式設計 URL類(Uniform Resource Locator)是java.net包中的一個重要的類,URL的例項封裝著一個統一資源定位符,使用URL建立物件的應用程式稱作客戶端程式。 一個URL物件通常包含最基

201771010135 楊蓉慶《面對物件程式設計java)》學習總結

1、實驗目的與要求 (1) 掌握Java GUI中框架建立及屬性設定中常用類的API; (2) 掌握Java GUI中2D圖形繪製常用類的API; (3) 瞭解Java GUI中2D圖形中字型與顏色的設定方法; (4) 瞭解Java

徐思201771010132《面向物件程式設計Java)》學習總結

一、理論知識部分 Java的抽象視窗工具箱(Abstract Window Toolkit, AWT)包含在java.awt包中,它提供了許多用來設計GUI的元件類和容器類。 大部分AWT元件都有其Swing的等價元件,Swing元件的名字一般是在AWT元件名前面新增一個字母“J”。 通常把由Compo

王穎奇 20171010129《面向物件程式設計java)》學習總結

實驗十二  圖形程式設計 理論: 10.1 AWT與Swing簡介 10.2 框架的建立10.3 圖形程式設計10.4 顯示影象 (具體學習總結在最後) 實驗: 實驗時間 2018-11-14 1、實驗目的與要求 (1) 掌握Java GUI中

201771010125王瑜《面向物件程式設計Java)》學習總結

                            第十二週學習總結 一 . 理論部分 1.概述:使用者介面,使用者與計算機系統(各種程式)互動的介面            圖形使用者介面,

201772020113李清華《面向物件程式設計java)》學習總結

1、實驗目的與要求 (1) 掌握Java GUI中框架建立及屬性設定中常用類的API; (2) 掌握Java GUI中2D圖形繪製常用類的API; (3) 瞭解Java GUI中2D圖形中字型與顏色的設定方法; (4) 瞭解Java GUI中2D影象的載入方法。 2、實驗內容和步驟 實驗1: 匯入