JAVA基礎之多線程--概念

1、線程和進程

如今的操做系統是多任務操做系統。多線程是實現多任務的一種方式。

進程是指一個內存中運行的應用程序,每一個進程都有本身獨立的一塊內存空間,一個進程中能夠啓動多個線程。好比在Windows系統中,一個運行的exe就是一個進程。
 
線程是指進程中的一個執行流程,一個進程中能夠運行多個線程。好比java.exe進程中能夠運行不少線程。線程老是屬於某個進程,進程中的多個線程共享進程的內存。
 
「同時」執行是人的感受,在線程之間實際上輪換執行。
 
2、Java中的線程

在Java中,「線程」指兩件不一樣的事情:
一、java.lang.Thread類的一個實例;
二、線程的執行。
 
使用java.lang.Thread類或者java.lang.Runnable接口編寫代碼來定義、實例化和啓動新線程。
 
一個Thread類實例只是一個對象,像Java中的任何其餘對象同樣,具備變量和方法,生死於堆上。
 
Java中,每一個線程都有一個調用棧,即便不在程序中建立任何新的線程,線程也在後臺運行着。
 
一個Java應用老是從main()方法開始運行,mian()方法運行在一個線程內,它被稱爲主線程。
 
一旦建立一個新的線程,就產生一個新的調用棧。
 
線程整體分兩類:用戶線程和守候線程。
當全部用戶線程執行完畢的時候,JVM自動關閉。可是守候線程卻不獨立於JVM,守候線程通常是由操做系統或者用戶本身建立的。
相關文章
相關標籤/搜索