麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

Java線程的深入探討

2019-11-18 15:37:12
字體:
來源:轉載
供稿:網友

  一般來說,我們把正在計算機中執行的程序叫做"進程"(PRocess) ,而不將其
  稱為程序(Program)。所謂"線程"(Thread),是"進程"中某個單一順序的控制流。
  新興的操作系統,如Mac,Windows NT,Windows 95等,大多采用多線程的概念,把線
  程視為基本執行單位。線程也是java中的相當重要的組成部分之一。

  甚至最簡單的Applet也是由多個線程來完成的。在Java中,任何一個Applet的
  paint()和update()方法都是由AWT(Abstract Window Toolkit)繪圖與事件處理線
  程調用的,而Applet 主要的里程碑方法——init(),start(),stop()和destory()
  ——是由執行該Applet的應用調用的。

  單線程的概念沒有什么新的地方,真正有趣的是在一個程序中同時使用多個線
  程來完成不同的任務。某些地方用輕量進程(Lightweig ht Process)來代替線程
  ,線程與真正進程的相似性在于它們都是單一順序控制流。然而線程被認為輕量是
  由于它運行于整個程序的上下文內,能使用整個程序共有的資源和程序環境。

  作為單一順序控制流,在運行的程序內線程必須擁有一些資源作為必要的開銷
  。例如,必須有執行堆棧和程序計數器。在線程內執行的代碼只在它的上下文中起
  作用,因此某些地方用"執行上下文"來代替"線程"。

  2.線程屬性

  為了正確有效地使用線程,必須理解線程的各個方面并了解Java 實時系統。
  必須知道如何提供線程體、線程的生命周期、實時系統如 何調度線程、線程組、
  什么是幽靈線程(Demo nThread)。

  (1)線程體
  所有的操作都發生在線程體中,在Java中線程體是從Thread類繼續的run()方
  法,或實現Runnable接口的類中的run()方法。當線程產生并初始化后,實時系統調
  用它的run()方法。run()方法內的代碼實現所產生線程的行為,它是線程的主要部
  分。

  (2)線程狀態
  附圖表示了線程在它的生命周期內的任何時刻所能處的狀態以及引起狀態改
  變的方法。這圖并不是完整的有限狀態圖,但基本概括了線程中比較感愛好和普遍
  的方面。以下討論有關線程生命周期以此為據。


  ●新線程態(New Thread)
  產生一個Thread對象就生成一個新線程。當線程處于"新線程"狀態時,僅僅是
  一個空線程對象,它還沒有分配到系統資源。因此只能啟動或終止它。任何其他操
  作都會引發異常。
  ●可運行態(Runnable)
  start()方法產生運行線程所必須的資源,調度線程執行,并且調用線程的run
  ()方法。在這時線程處于可運行態。該狀態不稱為運行態是因為這時的線程并不
  總是一直占用處理機。非凡是對于只有一個處理機的PC而言,任何時刻只能有一個
  處于可運行態的線程占用處理 機。Java通過調度來實現多線程對處理機的共享。

  ●非運行態(Not Runnable)
  當以下事件發生時,線程進入非運行態。
  ①suspend()方法被調用;
  ②sleep()方法被調用;
  ③線程使用wait()來等待條件變量;
  ④線程處于I/O等待。
  ●死亡態(Dead)
  當run()方法返回,或別的線程調用stop()方法,線程進入死亡態 。通常Appl
  et使用它的stop()方法來終止它產生的所有線程。

  (3)線程優先級
  雖然我們說線程是并發運行的。然而事實經常并非如此。正如前面談到的,當
  系統中只有一個CPU時,以某種順序在單CPU情況下執行多線程被稱為調度(schedu
  ling)。Java采用的是一種簡單、固定的調度法,即固定優先級調度。這種算法是
  根據處于可運行態線程的相對優先級來實行調度。當線程產生時,它繼續原線程的
  優先級。在需要時可對優先級進行修改。在任何時刻,假如有多條線程等待運行,
  系統選擇優先級最高的可運行線程運行。只有當它停止、自動放棄、或由于某種
  原因成為非運行態低優先級的線程才能運行。假如兩個線程具有相同的優先級,它
  們將被交替地運行。
  Java實時系統的線程調度算法還是強制性的,在任何時刻,假如一個比其他線
  程優先級都高的線程的狀態變為可運行態,實時系統將選擇該線程來運行。

  (4)幽靈線程
  任何一個Java線程都能成為幽靈線程。它是作為運行于同一個進程內的對象
  和線程的服務提供者。例如,HotJava瀏覽器有一個稱為" 后臺圖片閱讀器"的幽靈
  線程,它為需要圖片的對象和線程從文件系統或網絡讀入圖片。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美wwwsss9999 | 在线观看视频日本 | 国产精品久久久久影院老司 | 国产亚洲精品综合一区 | 中国的免费的视频 | 精品亚洲夜色av98在线观看 | 黄色片免费视频 | 欧美成人一区二区视频 | 777sesese| 午夜视频在线看 | 色吧久久| 日韩黄色片免费看 | 久久恋| 中文字幕在线播放视频 | 日韩精品中文字幕在线观看 | 欧美毛片 | 毛片118极品美女写真 | 99爱国产精品 | 久久精品2019中文字幕 | 精品亚洲国产视频 | 免费观看国产精品视频 | 精品国产高清一区二区三区 | 日日爱影院 | 黄色成人小视频 | 国产毛片毛片 | 男男啪羞羞视频网站 | 伊久在线 | 污黄视频在线播放 | 欧美亚洲一区二区三区四区 | 成人做爰高潮片免费视频美国 | 国产激情视频在线 | 国产午夜精品久久久久婷 | 成人毛片网站 | 一级爱片 | www嫩草| 精品国产91久久久久久 | 久久成人综合网 | 3344永久免费 | 国产精品成人亚洲一区二区 | 黄网站色成年大片免费高 | 久久欧美亚洲另类专区91大神 |