首頁  >  文章  >  Java  >  java中什麼是線程

java中什麼是線程

王林
王林原創
2019-12-04 16:03:143466瀏覽

java中什麼是線程

什麼是執行緒

#執行緒是指進程中的一個執行流程,一個行程中可以執行多個線程。例如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零基礎入門#

以上是java中什麼是線程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn