Java Thread 多線程 介紹

來源:互聯網
上載者:User

線程的概述

線程和進程

進程的特徵

並發和並行

多線程的優勢

1、線程概述

    幾乎所有的作業系統都支援同時運行多個任務,一個任務通常就是一個程式,每個運行中的程式就是一個進程。

    當一個程式運行時,內部可能包含了多個順序執行流,每個順序執行流就是一個線程。

2、線程和進程

    幾乎所有的作業系統都有進程的概念,所有運行中的任務通常對應一條進程。當一個程式進入記憶體運行,就是一個進程了。

    進程是處於運行中的程式,具有一定的獨立能力,進程是系統進行資源分派和調度的一個獨立單位。

  進程特徵:

    A、獨立性:進程是系統中獨立存在的實體,可以擁有自己獨立的資源,每個進程都擁有自己的私人地址地址。

            在沒有經過進程本身允許的情況下,一個使用者進程不可以訪問其他進程地址空間。

    B、動態性:進程和程式的區別在於,程式只是一個靜態指令集合,而進程是一個正在系統中活動的指令集合。

            在程式中加入了時間概念,進程具有自己的生命週期和各種不同的狀態,這些概念是程式不具備的。

    C、並發性:多個進程可以在單個處理器上並發執行,多個進程之間不會互相影響。

 

    多線程則擴充了多進程的概念,使得同一個進程可以同時並發處理多個任務。線程也被稱為輕量級進程(Lightweight Process),線程是進程的執行單元。

就像進程在作業系統中的地位一樣,線程在程式中是獨立、並發執行流。當進程被初始化後,主線程就被建立。對於絕大多數應用程式來說,通常僅要一個主線程,

但我們也可以在該進程內建立多條順序執行流,這些順序執行流就是線程,每條線程也互相獨立的。

    線程是進程的組成部分,一個進程可以擁有多個線程,一個線程必須有一個父進程。線程可以擁有自己的堆、棧、程式計數器、局部變數,但不能擁有系統資源,

它與父進程的其他線程共用該進程所有的全部資源。因為多個線程共用父進程的全部資源。

    線程可以完成一定的任務,可與其他線程共用父進程中的變數和部分環境,相互之間協作共同完成進程所要完成的任務。

    線程是獨立啟動並執行,它並不知道進程中是否還有其他進程存在。線程的執行是搶佔方式的,也就是說,當前啟動並執行線程在任何時候都可以被掛起,以便其他線程運行。

一個線程可以建立和撤銷另一個線程,同一個進程中的多個線程可以並發執行。

綜述:一個程式運行後至少有一個進程,一個進程可以包含多個線程。至少包含一個線程。

    

3、並發和並行

    並發性(concurrency)和並行性(parallel)是兩個概念;

    並行指在同一時刻,有多條指令(線程)在多個處理器上同時執行;

    並髮指在同一時刻只能有一個指令(線程)執行,但多個進程指令被快速輪換執行,使得宏觀上具有多個進程同時執行的效果。

4、多線程的優勢

    線程劃分尺度小於進程,使得多線程劃分的並發性高。進程在執行時有自己獨立的單元,多個線程共用記憶體,從而提高了運行效率。

    線程比進程具有更高的效能,這是由於同一個進程中的線程都有共性:多個線程將共用同一個進程的虛擬空間。

    線程共性的環境包括:進程程式碼片段、進程共有資料等。線程很容易就利用共性的資料進行通訊。

    當作業系統建立一個進程時,必須給該進程分別獨立的記憶體空間,並分配大量相關的資源;但建立一個線程則簡單得多,因此多線程來實現並發要比多進程實現並發的效能高得多。

多線程優點:

    A、進程之間不能共用記憶體,但線程之間共用記憶體非常容易。

    B、系統建立進程需要為該進程重新分配系統資源,但建立線程則代價要小得多,因此使用線程來實現多任務並發比多進程的效率高。

    C、Java語言內建多線程功能支援,而不是單純的作為底層作業系統的調度方式,從而簡化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.