<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                本章的主題是Android中的線程和線程池。**線程在Android中是一個很重要的概念,從用途上來說,線程分為主線程和子線程,主線程主要處理和界面相關的事情,而子線程則往往用于執行耗時操作**。 由于Android的特性,如果在主線程中執行耗時操作那么就會導致程序無法及時地響應,因此**耗時操作必須放在子線程中去執行**。除了Thread本身以外,**在Android中可以扮演線程角色的還有很多,比如AsyncTask和IntentService,同時HandlerThread也是一種特殊的線程**。盡管AsyncTask、IntentService以及HandlerThread的表現形式都有別于傳統的線程,但是它們的**本質仍然是傳統的線程**。**對于AsyncTask來說,它的底層用到了線程池,對于IntentService和HandlerThread來說,它們的底層則直接使用了線程**。 不同形式的線程雖然都是線程,但是它們仍然具有不同的特性和使用場景。 * **AsyncTask封裝了線程池和Handler,它主要是為了方便開發者在子線程中更新UI**。 * **HandlerThread是一種具有消息循環的線程,在它的內部可以使用Handler**。 * **IntentService是一個服務,系統對其進行了封裝使其可以更方便地執行后臺任務,IntentService內部采用HandlerThread來執行任務,當任務執行完畢后IntentService會自動退出**。 從任務執行的角度來看,IntentService的作用很像一個后臺線程,但是**IntentService是一種服務,它不容易被系統殺死從而可以盡量保證任務的執行**,而如果只是一個后臺線程,由于這個時候進程中沒有活動的四大組件,那么這個進程的優先級就會非常低,會很容易被系統殺死,這就是**IntentService的優點**。 **在操作系統中,線程是操作系統調度的最小單元**,同時**線程又是一種受限的系統資源,即線程不可能無限制地產生,并且線程的創建和銷毀都會有相應的開銷**。當系統中存在大量的線程時,系統會通過時間片輪轉的方式調度每個線程,因此**線程不可能做到絕對的并行**,除非線程數量小于等于CPU的核心數,一般來說這是不可能的。試想一下,**如果在一個進程中頻繁地創建和銷毀線程,這顯然不是高效的做法。正確的做法是采用線程池,一個線程池中會緩存一定數量的線程,通過線程池就可以避免因為頻繁創建和銷毀線程所帶來的系統開銷**。 *Android中的線程池來源于Java,主要是通過Executor來派生特定類型的線程池,不同種類的線程池又具有各自的特性*,詳細內容會在11.3節中進行介紹。
                  <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>

                              哎呀哎呀视频在线观看