Java線程:概念與原理

一、操作系統中線程和進程的概念

現在的操作系統是多任務操作系統。多線程是實現多任務的一種方式。

進程是指一個內存中運行的應用程序,每個進程都有自己獨立的一塊內存空間,一個進程中可以啓動多個線程。比如在Windows系統中,一個運行的exe就是一個進程。
 
線程是指進程中的一個執行流程,一個進程中可以運行多個線程。比如java.exe進程中可以運行很多線程。線程總是屬於某個進程,進程中的多個線程共享進程的內存。
 
“同時”執行是人的感覺,在線程之間實際上輪換執行。
 
二、Java中的線程

在Java中,“線程”指兩件不同的事情:
1、java.lang.Thread類的一個實例;
2、線程的執行。
 
使用java.lang.Thread類或者java.lang.Runnable接口編寫代碼來定義、實例化和啓動新線程。
 
一個Thread類實例只是一個對象,像Java中的任何其他對象一樣,具有變量和方法,生死於堆上。
 
Java中,每個線程都有一個調用棧,即使不在程序中創建任何新的線程,線程也在後臺運行着。
 
一個Java應用總是從main()方法開始運行,mian()方法運行在一個線程內,它被稱爲主線程。
 
一旦創建一個新的線程,就產生一個新的調用棧。
 
線程總體分兩類:用戶線程和守候線程。

當所有用戶線程執行完畢的時候,JVM自動關閉。但是守候線程卻不獨立於JVM,守候線程一般是由操作系統或者用戶自己創建的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章