更新時間:2021-05-28 15:52:16 來源:動力節點 瀏覽1859次
在 Java 中,并發機制非常重要,但并不是所有程序語言都支持線程。在以往的程序中,多以一個任務完成以后再進行下一個任務的模式進行,這樣下一個任務的開始必須等待前一個任務的結束。Java 語言提供了并發機制,允許開發人員在程序中執行多個線程,每個線程完成一個功能,并與其他線程并發執行。這種機制被稱為多線程。
既然多線程這么復雜,那么它在操作系統中是怎樣工作的呢?其實,Java中的多線程在每個操作系統中的運行方式也存在差異,在此以Windows操作系統為例介紹其運行模式。
Windows系統是多任務操作系統,它以進程為單位。一個進程是一個包含有自身地址的程序,每個獨立執行的程序都稱為進程,也就是正在執行的程序。圖1所示為Windows 7系統下使用任務管理器查看進程的結果。
圖1 查看 Windows 7 的進程
系統可以分配給每個進程一段有限的執行CPU的時間(也稱為CPU時間片),CPU在這段時間中執行某個進程,然后下一個時間段又跳到另一個進程中去執行。由于CPU切換的速度非常快,給使用者的感受就是這些任務似乎在同時運行,所以使用多線程技術后,可以在同一時間內運行更多不同種類的任務。
圖2的左圖是單線程環境下任務1和任務2的執行模式。任務1和任務2是兩個完全獨立、互不相關的任務,任務1是在等待遠程服務器返回數據,以便進行后期的處理,這時CPU一直處于等待狀態,一直在“空運行”。如果任務2是在5秒之后被運行,雖然執行任務2用的時間非常短,僅僅是1秒,但必須在任務1運行結束后才可以運行任務2。由于運行在單任務環境中,所以任務2有非常長的等待時間,系統運行效率大幅降低。
單任務的特點就是排隊執行,也就是同步,就像在cmd中輸入一條命令后,必須等待這條命令執行完才可以執行下一條命令一樣。這就是單任務環境的缺點,即CPU利用率大幅降低。
圖2 單線程和多線程執行模式
圖2的右側則是多線程環境下的執行模式。從中可以發現,CPU完全可以在任務1和任務2之間來回切換,使任務2不必等到5秒再運行,系統的運行效率大大得到提升。這就是要使用多線程技術、要學習多線程的原因。
零基礎學自學linux,可以學習動力節點的Java多線程學習視頻,線程是進程中的一個獨立控制單元,線程在控制著進程的執行,一個進程中至少有一個線程。多線程可以更好地利用cpu的資源,線程之間還能進行數據共享。在Java中,一個線程是指進程中的一個執行流程,一個進程可以運行多個線程,Java中每個線程都有一個調用棧,即使不在程序中創建任何新的線程,也有一個main()方法運行在一個線程內,稱為主線程,一旦創建一個新的線程,就產生一個新的調用棧。通過該專題課程的系統學習,讓大家一次性搞明白Java中的多線程。
課程目標:通過本系列課程的學習,一次性搞明白多線程,提升自身技術能力與價值。
適用人群:具有Java基礎的人群,希望系統學習Java多線程的人群。
以上就是動力節點小編介紹的"Java多線程視頻教程全套基礎學習下載",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習