什麼是執行緒
#執行緒是指進程中的一個執行流程,一個行程中可以執行多個線程。例如java.exe進程中可以運行很多執行緒。執行緒總是屬於某個進程,進程中的多個執行緒共享進程的記憶體。
在Java中,「執行緒」指兩件不同的事情:
1、java.lang.Thread類別的一個實例;
2、執行緒的執行。
java相關影片教學建議:java影片教學
使用java.lang.Thread
類別或java.lang.Runnable
介面編寫程式碼來定義、實例化和啟動新執行緒。
一個Thread類別實例只是一個對象,像Java中的任何其他物件一樣,具有變數和方法,生死於堆上。
Java中,每個執行緒都有一個呼叫棧,即使不在程式中建立任何新的線程,線程也在後台運行著。
一個Java應用程式總是從main()
方法開始執行,mian()方法運行在一個執行緒內,它被稱為主執行緒。
一旦建立一個新的線程,就產生一個新的呼叫堆疊。
執行緒總體分兩類:使用者執行緒和守候執行緒。
當所有使用者執行緒執行完畢的時候,JVM自動關閉。但是守候線程卻不獨立於JVM,守候線程一般是由作業系統或使用者自己創建的。
Java執行緒:建立與啟動
#一、定義執行緒
1、擴充java .lang.Thread類別。
此類中有個run()方法,應該注意其用法:
public void run()
如果該執行緒是使用獨立的Runnable運行物件建構的,則呼叫該Runnable物件的run方法;否則,該方法不執行任何操作並返回。
Thread的子類別應該要重寫該方法。
2、實作java.lang.Runnable介面。
void run()
使用實作介面Runnable的物件建立一個執行緒時,啟動該執行緒將導致在獨立執行的執行緒中呼叫物件的run方法。
方法run的常規協定是,它可能執行任何所需的操作。
二、實例化線程
1、如果是擴充java.lang.Thread類別的線程,則直接new即可。
2、如果是實作了java.lang.Runnable介面的類,則用Thread的建構方法:
Thread(Runnable target) Thread(Runnable target, String name) Thread(ThreadGroup group, Runnable target) Thread(ThreadGroup group, Runnable target, String name) Thread(ThreadGroup group, Runnable target, String name, long stackSize)
三、啟動執行緒
# #在執行緒的Thread物件上呼叫start()方法,而不是run()或別的方法。 在呼叫start()方法之前:線程處於新狀態中,新狀態指有一個Thread對象,但還沒有一個真正的線程。 在呼叫start()方法之後:發生了一系列複雜的事情啟動新的執行緒(具有新的呼叫堆疊);該執行緒從新狀態轉移到可運行狀態;當該執行緒獲得機會執行時,其目標run()方法將運行。 注意:對Java來說,run()方法沒有任何特別之處。像main()方法一樣,它只是新執行緒知道呼叫的方法名稱(和簽章)。因此,在Runnable上或Thread上呼叫run方法是合法的。但並不啟動新的線程。 相關文章教學推薦:以上是java中什麼是線程的詳細內容。更多資訊請關注PHP中文網其他相關文章!