java多線程基礎

??java給多線程編程提供了內置的支持。一條線程指的是進程中一個單一順序的控制流,一個進程可以并發多個線程,每條線程執行不同的任務。多線程是多任務的一種特別的形式,但多線程使用了更小的資源開銷。
??進程:一個進程包括由操作系統分配的內存空間,包含一個或者多個線程。一個線程不能獨立的存在,它必須是進程的一部分。一個進程一直運行,直到所有的非守候線程都結束運行后才能結束。
??多線程能滿足程序員編寫非常有效率的程序來達到充分利用CPU的目的,因為CPU的空閑時間能夠保持在最低限度。

一個線程的生命周期

線程經過其生命周期的各個階段。下圖顯示了一個線程完整的生命周期。

線程的生命周期
  • 新建狀態: 一個新產生的線程從新狀態開始了它的生命周期。它保持這個狀態直到程序start這個線程。

  • 運行狀態:當一個新狀態的線程被start以后,線程就變成可運行狀態,一個線程在此狀態下被認為是開始執行其任務

  • 就緒狀態:當一個線程等待另外一個線程執行一個任務的時候,該線程就進入就緒狀態。當另一個線程給就緒狀態的線程發送信號時,該線程才重新切換到運行狀態。

  • 休眠狀態: 由于一個線程的時間片用完了,該線程從運行狀態進入休眠狀態。當時間間隔到期或者等待的事件發生了,該狀態的線程切換到運行狀態。

  • 終止狀態: 一個運行狀態的線程完成任務或者其他終止條件發生,該線程就切換到終止狀態。

線程的優先級

每一個Java線程都有一個優先級,這樣有助于操作系統確定線程的調度順序。Java優先級在MIN_PRIORITY(1)和MAX_PRIORITY(10)之間的范圍內。默認情況下,每一個線程都會分配一個優先級NORM_PRIORITY(5)。

具有較高優先級的線程對程序更重要,并且應該在低優先級的線程之前分配處理器時間。然而,線程優先級不能保證線程執行的順序,而且非常依賴于平臺。

創建一個線程

Java提供了三種創建線程方法:

  • 通過實現Runnable接口;

  • 通過繼承Thread類本身;

  • 通過 Callable 和 Future 創建線程。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前言該篇文章主要是書寫一些java線程相關的基礎知識。 正文一、進程與線程進程:直白的講,進程就是應用程序的啟動實...
    Albert_Yu閱讀 647評論 1 3
  • 進程:正在執行中的程序,其實是應用程序在內存中運行的那片空間。 線程:進程中的一個執行單元,負責進程中程序的執行。...
    七弦桐語閱讀 473評論 2 7
  • 線程的簡介 幾乎每種操作系統都支持進程的概念。進程就是在某種程度上相互隔離的、獨立運行的程序。線程化是允許多個活動...
    小人物灌籃閱讀 685評論 2 4
  • 前言 在我們工作和學習的過程中,Java線程我們或多或少的都會用到,但是在使用的過程上并不是很順利,會遇到各種各樣...
    oneape15閱讀 11,646評論 0 9
  • 標簽(空格分隔): java java 5新增機制--->同步鎖(Lock) 從java5開始,java提供了一種...
    Sivin閱讀 558評論 1 5