Java多線程:概念

來源:互聯網
上載者:User

JAVA 虛擬機器允許應用程式並發地運行多個執行線程。Java語言提供了多線程編程的擴充點,並給出了功能強大的線程式控制制API。
每個線程都有一個優先順序,高優先順序線程的執行優先於低優先順序線程。每個線程都可以或不可以標記為一個精靈。當某個線程中啟動並執行代碼建立一個新 Thread 對象時,該新線程的初始優先順序被設定為建立線程的優先順序,並且若且唯若建立線程是守護線程時,新線程才是精靈。
當 JAVA 虛擬機器啟動時,通常都會有單個非守護線程(它通常會調用某個指定類的 main 方法)。
多線程和多進程有什麼區別呢?
本質的區別在於每個進程有它自己的變數的完備集,線程則共用相同的資料。對程式來說,共用的變數使線程之間的通訊比進程間的通訊更加有效而簡單。而且,對於某些作業系統而言,線程比進程更"輕量級",建立和銷毀單個線程比發起進程的開銷要小得多。
線程的分類
使用者線程
:Java虛擬機器在它所有非守護線程已經離開後自動離開。
守護線程:守護線程則是用來服務使用者線程的,如果沒有其他使用者線程在運行,那麼就沒有可服務物件,也就沒有理由繼續下去。
setDaemon(boolean on)方法可以方便的設定線程的Daemon模式,true為Daemon模式,false為User模式。setDaemon(boolean on)方法必須線上程啟動之前調用,當線程正在運行時調用會產生異常。isDaemon方法將測試該線程是否為守護線程。值得一提的是,當你在一個守護線程中產生了其他線程,那麼這些新產生的線程不用設定Daemon屬性,都將是守護線程,使用者線程同樣。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.