更新時間:2020-02-26 11:02:05 來源:動力節點 瀏覽2343次
1.線程與并發
1.1.理解線程與進程的區別(了解)
進程:是指一個內存中運行的應用程序,每個進程都有自己獨立的一塊內存空間,一個進程中可以有多個線程(1,n)。比如在Windows的任務管理器中,一個運行的xx.exe就是一個進程。
線程:是指進程中的一個執行任務(控制單元),一個進程中可以運行多個線程,多個線程可共享數據。
多進程:操作系統中同時運行的多個程序。
多線程:在同一個進程中同時運行的多個任務。
一個進程至少有一個線程,為了提高效率,可以在一個進程中開啟多個控制單元,這就是多線程。
1.2.主線程main(了解)
在運行一個簡單的Java程序的時候,就已經存在了兩個線程,一個是主線程,一個是后臺線程——維護的垃圾回收。主線程很特殊,在啟動JVM的時候自動啟動的。
1.3.線程的創建和啟動(掌握)
方式一,繼承Thread類:
自定義類繼承Thread
覆寫run方法
創建自定義類對象
自定義類對象調用start方法
方式二,實現Runnable接口
自定義類實現Runnable接口
覆寫run方法
創建自定義類對象
把自定類的對象作為Thread類構造器參數,并調用Thread對象start方法
第一種使用起來方便,啟動一個線程也方便,很多功能都在Thread類中定義好了;
第二種方式啟動得依賴于Thread,因為本身Runnable中只有run方法,請看Thread的構造方法。
1.3.1.線程體-run方法(掌握)
不管哪種方式創建的線程,都得覆寫run方法,因為這是線程體方法,該方法在線程啟動之后會自動被調用。
publicvoidrun(){
//線程體,線程啟動時,會自動調用本方法,所有這里是我們寫代碼的主體部分
}
線程的執行隨機性:
一旦一個線程啟動之后就是一個獨立的線程,等待CPU的調度分配資源,不會因為啟動它的外部線程結束而結束。
多次運行該程序,觀察每次運行的結果。
1.3.2.線程的啟動(掌握)
啟動線程必須調用線程類Thread中的start方法,該方法應該由Thread類的一個實例來調用,下面是方法簽名:
publicvoidstart()
底層會調用該線程的run方法。
只有調用了線程對象的start方法才會開啟一個新的線程,如果是直接調用對象的run方法不會開啟新的線程,只是一個單線程。
注意:啟動一個新線程,不能使用run()方法,只能使用start方法。
以上就是動力節點Java培訓機構小編介紹的“Java線程學習教程:多線程基礎開發”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習