<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## Java線程是如何實現的? 當我們追蹤Java線程的實現時,可以發現Thread類的start方法最后會運行一個start0方法,而這個方法是native的,也就是交由JDK來實現的(JDK會屏蔽調底層操作系統的差異,提供給Java開發者一套通用的線程接口) ![](https://img.kancloud.cn/c3/9c/c39c09e3679345c086a6a03f3395845e_1590x1386.png) 而要搞清楚這個問題的答案,首頁我們得對線程的實現有一定的了解。 線程的主要實現方式有3種(線程模型),分別是使用內核線程實現、使用用戶線程實現和使用用戶線程加輕量級進程混合實現。 ## 使用內核線程實現 ![](https://img.kancloud.cn/46/c2/46c24bd8a92de971fba63f97cba705ee_1710x1376.png) * 優點: 一個線程被阻塞也不會影響整個進程工作。 * 缺點: 1. 各種線程操作(如創建、析構及同步等)都需要進行系統調用,性能消耗高在用戶態和內核態來回切換。 2. 線程和內核線程一比一,內核線程也是要消耗資源的(如內核線程棧空間),所以支持的數量是有限的。 ## 使用用戶線程實現 ![](https://img.kancloud.cn/b6/e2/b6e2895f16b190f06aa708a751486012_1704x1144.png) * 優點: 用戶線程的創建、同步、銷毀及調度完全是在用戶態中完成,不需要切換到內核態,因此操作是快速且低消耗的。 * 缺點: 因為沒有內核的支持,線程的所有操作都需要用戶程序自己實現,實現異常復雜。操作系統只把處理器資源分配到進程,“阻塞如何處理”,“多處理器系統如何將線程映射到其他處理器上”這類問題,甚至不可能解決。 ## 使用用戶線程加輕量級經常混合實現 ![](https://img.kancloud.cn/30/da/30da7a374ba329b62836c9e1968e5cee_1704x1368.png) * 優點: 混合前2種的優點; 用戶線程操作快速且低消耗,支持更多的并發;一個線程阻塞也不會導致整個進程阻塞。 * 缺點: 實現相對復雜,且需要操作系統對應支持。 ## Java線程的實現 ![](https://img.kancloud.cn/20/4b/204ba552ae0f1a24d43c83e38ec68cc0_1476x838.png) ## Java線程的調度 ![](https://img.kancloud.cn/dc/11/dc114872bef8b6b0afffbfdc01960e08_1398x958.png) ## 參考文檔 * 書籍:周志明 *《深入理解Java虛擬機》
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看