<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之旅 廣告
                [toc] ## 1、線程池的工作原理; ![](https://img.kancloud.cn/8d/4e/8d4e9da6f7b5513cea715a1fba0a67fa_445x537.png) 1、提交任務后,線程池先判斷線程數是否達到了核心線程數(corePoolSize)。如果未達到線程數,則創建核心線程處理任務;否則,就執行下一步; 2、接著線程池判斷任務隊列是否滿了。如果沒滿,則將任務添加到任務隊列中;否則,執行下一步; 3、接著因為任務隊列滿了,線程池就判斷線程數是否達到了最大線程數。如果未達到,則創建非核心線程處理任務;否則,就執行飽和策略,默認會拋出RejectedExecutionException異常。 > 創建非核心線程的優先級是最低的,因為其代價比較大。 ## 2、CPU密集型和IO密集型的配置 ### 非核心線程的消亡時間的設置,是怎么實現的? 1. 所有的線程都是一樣的,并沒有區分是核心線程還是非核心線程,只是在沒有任務的時候,過了超時時間會有一些線程結束執行退出,剩下的就是核心線程了。 2. runworker()方法里會通過while死循環獲取任務,當線程數量大于核心線程數量時,獲取任務為null時,會執行線程銷毀操作——線程是作為存放在HashSet<Worker>中的,執行remove()操作即可。`java/util/concurrent/ThreadPoolExecutor.java:1134` ``` final void runWorker(Worker w) { Thread wt = Thread.currentThread(); Runnable task = w.firstTask; w.firstTask = null; w.unlock(); // allow interrupts boolean completedAbruptly = true; try { while (task != null || (task = getTask()) != null) { w.lock(); // 省略一部分代碼 } completedAbruptly = false; } finally { processWorkerExit(w, completedAbruptly); } } ``` ### 線程的復用機制是怎么實現的?
                  <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>

                              哎呀哎呀视频在线观看