中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中的線程是什么?如何使用線程

發布時間:2020-06-19 10:25:31 來源:億速云 閱讀:143 作者:Leah 欄目:編程語言

java中的線程是什么?如何使用線程?這些問題可能是我們日常工作會見到的。通過這些問題,希望你能收獲更多。下面是揭開這些問題的詳細內容。

什么是線程

線程是指進程中的一個執行流程,一個進程中可以運行多個線程。比如java.exe進程中可以運行很多線程。線程總是屬于某個進程,進程中的多個線程共享進程的內存。

在Java中,“線程”指兩件不同的事情:

1、java.lang.Thread類的一個實例;

2、線程的執行。

使用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中的線程有進一步的了解嗎?如果還想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰西县| 安丘市| 景泰县| 红安县| 平昌县| 莎车县| 正镶白旗| 当涂县| 稻城县| 昌宁县| 河曲县| 微博| 兴业县| 晋中市| 安龙县| 商丘市| 丰县| 台前县| 台江县| 浦江县| 赤壁市| 察隅县| 武宁县| 乾安县| 唐河县| 磐安县| 依安县| 论坛| 凤冈县| 吴旗县| 武汉市| 黑龙江省| 新郑市| 正镶白旗| 库车县| 宁津县| 姜堰市| 志丹县| 灵武市| 进贤县| 紫金县|