您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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中的線程介紹就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。