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

溫馨提示×

溫馨提示×

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

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

java中的線程介紹

發布時間:2020-06-29 11:52:46 來源:億速云 閱讀:153 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關java中的線程介紹,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

什么是java線程

Java中線程是指java.lang.Thread類的一個實例或線程的執行。使用java.lang.Thread或java.lang.Runnable接口編寫代碼定義、實例化、啟動新線程。

1、進程

進程是指一個內存中運行的應用程序,每個進程都有自己獨立的一塊內存空間,一個進程中可以啟動多個線程。比如在Windows系統中,一個運行的exe就是一個進程。

2、線程

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

3、Java的線程模型

由于Java是純面向對象語言,因此,Java的線程模型也是面向對象的。Java通過Thread類將線程所必須的功能都封裝了起來。要想建立一個線程,必須要有一個線程執行函數,這個線程執行函數對應Thread類的run方法。Thread類還有一個start方法,這個方法負責建立線程,相當于調用Windows的建立線程函數CreateThread。當調用start方法后,如果線程建立成功,并自動調用Thread類的run方法。因此,任何繼承Thread的Java類都可以通過Thread類的start方法來建立線程。如果想運行自己的線程執行函數,那就要覆蓋Thread類的run方法。

在Java的線程模型中除了Thread類,還有一個標識某個Java類是否可作為線程類的接口Runnable,這個接口只有一個抽象方法run,也就是Java線程模型的線程執行函數。因此,一個線程類的唯一標準就是這個類是否實現了Runnable接口的run方法,也就是說,擁有線程執行函數的類就是線程類。

從上面可以看出,在Java中建立線程有兩種方法,一種是繼承Thread類,另一種是實現Runnable接口,并通過Thread和實現Runnable的類來建立線程,其實這兩種方法從本質上說是一種方法,即都是通過Thread類來建立線程,并運行run方法的。但它們的大區別是通過繼承Thread類來建立線程,雖然在實現起來更容易,但由于Java不支持多繼承,因此,這個線程類如果繼承了Thread,就不能再繼承其他的類了,因此,Java線程模型提供了通過實現Runnable接口的方法來建立線程,這樣線程類可以在必要的時候繼承和業務有關的類,而不是Thread類。

● Java編寫程序都運行在在Java虛擬機(JVM)中,在JVM的內部,程序的多任務是通過線程來實現的。每用java命令啟動一個java應用程序,就會啟動一個JVM進程。在同一個JVM進程中,有且只有一個進程,就是它自己。在這個JVM環境中,所有程序代碼的運行都是以線程來運行。

● 一般常見的Java應用程序都是單線程的。比如,用java命令運行一個最簡單的HelloWorld的Java應用程序時,就啟動了一個JVM進程,JVM找到程序程序的入口點main(),然后運行main()方法,這樣就產生了一個線程,這個線程稱之為主線程。當main方法結束后,主線程運行完成。JVM進程也隨即退出 。

關于java中的線程介紹就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

扶风县| 綦江县| 淮安市| 鹤庆县| 正阳县| 昌平区| 饶平县| 深州市| 凌海市| 英德市| 黔西县| 托克逊县| 忻州市| 霍邱县| 丰城市| 商河县| 宣城市| 永丰县| 依安县| 普兰店市| 牙克石市| 鄂托克旗| 西安市| 宁南县| 宁安市| 平乐县| 铅山县| 湟源县| 辰溪县| 嘉义县| 益阳市| 叶城县| 汝州市| 临夏县| 汤原县| 梓潼县| 漳浦县| 博罗县| 洛川县| 合作市| 多伦县|