Java基礎-多線程

來源:互聯網
上載者:User

標籤:

 

介紹

  作業系統能同時運行幾個程式,每個獨立啟動並執行程式又稱之為進程

  對於同一個程式,它又可以分成若干個獨立的執行流,我們稱之為線程。線程提供了多任務處理的能力

  用進程和線程的觀點來研究軟體是當今普遍採用的方法,進程和線程的概念的出現,對提高軟體的並行性有著重要的意義。現在的大型應用軟體無一不是多線程多任務處理,單線程的軟體是不可想象的。因此掌握多線程多任務設計方法對每個程式員都是必需要掌握的。

 

 

理解線程

  要講解線程,不得不說一下進程,進程是應用程式的執行執行個體,每個進程是由私人的虛擬位址空間、代碼、資料和其它系統資源群組成。進程在運行時建立的資源隨著進程的終止而死亡

  線程的基本思想很簡單,它是一個獨立的執行流,是進程內部的一個獨立的執行單元,相當於一個子程式

  單獨一個執行程式運行時,預設地包含的一個主線程,主線程以函數地址的形式出現,提供者的啟動點,如main()函數等。當主線程終止時,進程也隨之終止。

  根據實際需要,應用程式可以分解成許多獨立執行的線程,每個線程並行的運行在同一進程中。

 

  一個進程中的所有線程都在該進程的虛擬位址空間中,使用該進程的全域變數和系統資源。作業系統給每個線程分配不同的CPU時間片,在某一個時刻,CPU只執行一個時間片內的線程,多個時間片中的相應線程在CPU內輪流執行,由於每個時間片時間很短,所以對使用者來說,彷彿各個線程在電腦中是平行處理的。作業系統是根據線程的優先順序來安排CPU的時間,優先順序高的線程優先運行,優先順序低的線程則繼續等待。

 

線程被分為兩種:

使用介面執行緒和背景工作執行緒(又稱為後台線程)

 

  使用介面執行緒通常用來處理使用者的輸入並響應各種事件和訊息,其實,應用程式的主執行線程CWinAPP對象就是一個使用介面執行緒,當應用程式啟動時自動建立和啟動,同樣它的終止也意味著該程式的結束,進程終止。

  背景工作執行緒用來執行程式的幕後處理任務,比如計算、調度、對串口的讀寫操作等,它和使用介面執行緒的區別是它不用從Thread類派生來建立,對它來說最重要的是如何?背景工作執行緒任務的運行控制函數。

  背景工作執行緒和使用介面執行緒啟動時要調用同一個函數的不同版本;最後需要讀者明白的是,一個進程中的所有線程共用它們父進程的變數,但同時每個線程可以擁有自己的變數。

 

Java基礎-多線程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.