国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java線程簡介(線程基礎)

2019-11-18 10:42:35
字體:
來源:轉載
供稿:網友

  I、java 線程簡介
  
  1、本教程有什么內容?
  
  本教程研究了線程的基礎知識 — 線程是什么、線程為什么有用以及怎么開始編寫使用線程的簡單程序。
  
  我們還將研究更復雜的、使用線程的應用程序的基本構件 — 如何在線程之間交換數據、如何控制線程以及線程如何互相通信。
  
  2、我應該學習這個教程嗎?
  
  
  
  本教程適用于擁有豐富 Java 語言應用知識,但又沒有多少多線程或并發性經驗的 Java 程序員。
  
  學習完本教程之后,您應該可以編寫一個使用線程的簡單程序。您還應該可以閱讀并理解以簡單方法使用線程的程序。
  
  
  
  II、線程基礎
  
  
  1、什么是線程?
  
  
  幾乎每種操作系統都支持進程的概念 —— 進程就是在某種程度上相互隔離的、獨立運行的程序。
  
  線程化是答應多個活動共存于一個進程中的工具。大多數現代的操作系統都支持線程,而且線程的概念以各種形式已存在了好多年。Java 是第一個在語言本身中顯式地包含線程的主流編程語言,它沒有把線程化看作是底層操作系統的工具。
  
  有時候,線程也稱作輕量級進程。就象進程一樣,線程在程序中是獨立的、并發的執行路徑,每個線程有它自己的堆棧、自己的程序計數器和自己的局部變量。但是,與分隔的進程相比,進程中的線程之間的隔離程度要小。它們共享內存、文件句柄和其它每個進程應有的狀態。
  
  進程可以支持多個線程,它們看似同時執行,但互相之間并不同步。一個進程中的多個線程共享相同的內存地址空間,這就意味著它們可以訪問相同的變量和對象,而且它們從同一堆中分配對象。盡管這讓線程之間共享信息變得更輕易,但您必須小心,確保它們不會妨礙同一進程里的其它線程。
  
  Java 線程工具和 API 看似簡單。但是,編寫有效使用線程的復雜程序并不十分輕易。因為有多個線程共存在相同的內存空間中并共享相同的變量,所以您必須小心,確保您的線程不會互相干擾。
  
  
  2、每個 Java 程序都使用線程
  
  
  每個 Java 程序都至少有一個線程 — 主線程。當一個 Java 程序啟動時,JVM 會創建主線程,并在該線程中調用程序的 main() 方法。
  
  JVM 還創建了其它線程,您通常都看不到它們 — 例如,與垃圾收集、對象終止和其它 JVM 內務處理任務相關的線程。其它工具也創建線程,如 AWT(抽象窗口工具箱(Abstract Windowing Toolkit))或 Swing UI 工具箱、servlet 容器、應用程序服務器和 RMI(遠程方法調用(Remote Method Invocation))。
  
  
  3、為什么使用線程?
  
  
  在 Java 程序中使用線程有許多原因。假如您使用 Swing、servlet、RMI 或 EnterPRise JavaBeans(EJB)技術,您也許沒有意識到您已經在使用線程了。
  
  使用線程的一些原因是它們可以幫助:
  
  使 UI 響應更快
  利用多處理器系統
  簡化建模
  執行異步或后臺處理
  
  
  4、響應更快的 UI
  
  
  事件驅動的 UI 工具箱(如 AWT 和 Swing)有一個事件線程,它處理 UI 事件,如擊鍵或鼠標點擊。
  
  AWT 和 Swing 程序把事件偵聽器與 UI 對象連接。當特定事件(如單擊了某個按鈕)發生時,這些偵聽器會得到通知。事件偵聽器是在 AWT 事件線程中調用的。
  
  假如事件偵聽器要執行持續很久的任務,如檢查一個大文檔中的拼寫,事件線程將忙于運行拼寫檢查器,所以在完成事件偵聽器之前,就不能處理額外的 UI 事件。這就會使程序看來似乎停滯了,讓用戶不知所措。
  
  要避免使 UI 延遲響應,事件偵聽器應該把較長的任務放到另一個線程中,這樣 AWT 線程在任務的執行過程中就可以繼續處理 UI 事件(包括取消正在執行的長時間運行任務的請求)。
  
  
  5、利用多處理器系統
  
  
  多處理器(MP)系統比過去更普及了。以前只能在大型數據中心和科學計算設施中才能找到它們。現在許多低端服務器系統 — 甚至是一些臺式機系統 — 都有多個處理器。
  
  現代操作系統,包括 linux、Solaris 和 Windows NT/2000,都可以利用多個處理器并調度線程在任何可用的處理器上執行。
  
  調度的基本單位通常是線程;假如某個程序只有一個活動的線程,它一次只能在一個處理器上運行。假如某個程序有多個活動線程,那么可以同時調度多個線程。在精心設計的程序中,使用多個線程可以提高程序吞吐量和性能。
  
  
  6、簡化建模
  
  
  在某些情況下,使用線程可以使程序編寫和維護起來更簡單。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麦盖提县| 江永县| 大港区| 瓦房店市| 三河市| 久治县| 伽师县| 三原县| 炉霍县| 庆阳市| 陈巴尔虎旗| 建德市| 凤阳县| 绥阳县| 阿坝县| 霍州市| 德化县| 仪征市| 津市市| 繁峙县| 石屏县| 长乐市| 河池市| 西丰县| 丹巴县| 来宾市| 隆林| 高尔夫| 蒙山县| 揭西县| 门头沟区| 临夏市| 明光市| 和平县| 晋宁县| 襄樊市| 托克托县| 太仆寺旗| 偏关县| 水富县| 邯郸市|