欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

淺談coding學堂之Android多線程及異步處理

2016-03-24 13:17:33 1371瀏覽

         在Android開發(fā)程序當中,或多或少使用了工作者線程,對于零基礎學員來說都不知道什么是多線程,線程程序的“麻煩”源于它很抽象、與單線程程序運行模式不同,那么,下面我們來介紹一下Android多線程及異步處理吧。

         1、用戶態(tài)線程

         由于內(nèi)核并沒有對多線程進程的支持,因此,內(nèi)核中只有單線程進程的概念, 而多線程進程是通過一個和應用程序連接的函數(shù)庫實現(xiàn)的。由于內(nèi)核沒有輕量 級進程(線程)的概念,因此它不能獨立的對之進行調(diào)度,而是由一個線程運 行庫來組織線程的調(diào)度,其主要工作在于在各個線程的棧之間調(diào)度。如果一個進程中的某一個線程調(diào)用了一個阻塞的系統(tǒng)調(diào)用,該進程就會被阻塞,當然該進程中的其他所有線程也同時被阻塞,因此UNIX使用了異步I/O機制。

         這種機制主要的缺點在于在一個進程中的多個線程的調(diào)度中無法發(fā)揮多處理器的優(yōu)勢(如上述的阻塞情況)。其優(yōu)點包括:

         A、(相對于進程操作而言)某些線程操作的系統(tǒng)消耗大大減少。比如,對屬于同一個進程的線程之間進行調(diào)度切換時不需要調(diào)用系統(tǒng)調(diào)用,因此將減少額 外的消耗,往往一個進程可以啟動上千個線程也沒有什么問題。

         B、用戶態(tài)線程的實現(xiàn)方式可以被定制或修改以適應特殊應用的要求。這對于多 媒體實時過程等尤其有用。另外,用戶態(tài)線程可以比核心態(tài)線程實現(xiàn)方法的默認情況支持更多的線程。

         LINUX的線程庫有NPTL(Native POSIX Thread Library)和LinuxThreads。

         2、核心態(tài)線程

         這種線程的實現(xiàn)方法允許不同進程中的線程按照同一相對優(yōu)先調(diào)度方法進行調(diào) 度。這有利于發(fā)揮多處理器的并發(fā)優(yōu)勢。

         3、Handler、Looper、MessageQueue介紹

         Handler用于異步消息處理,但是Handler自己并不會創(chuàng)建線程。一般Handler用于計劃任務和線程間的通信。

         在后臺線程與UI線程的交互中最常用。原理是:系統(tǒng)啟動程序時,會自動為UI線程創(chuàng)建一個消息隊列,和用于管理這個消息隊列的Looper。在創(chuàng)建的后臺線程時,默認是不會創(chuàng)建Looper和消息隊列的(我們自己可以通過調(diào)用Looper.prepare()給后臺線程創(chuàng)建Looper和消息隊列)。

         通過給Handler傳遞不同的Looper實現(xiàn)向不同的線程傳遞信息。Looper.getMainLooper()會獲得UI線程的Looper。

         4、Android多線程與界面交互的方法

         *Activity.runOnUIThread(Runnable)

         *View.post(Runnable),View.postDelay(Runnable,long)

         *Handler

         *AsyncTask

         以上就是關(guān)于Android多線程及異步處理的詳細介紹,希望對大家有幫助,扣丁學堂2016年5月4號正式開Android培訓第一個就業(yè)班,首期Android培訓費用是9960元,正在火熱報名中。

 查看更多關(guān)于“Android培訓資訊”的相關(guān)文章>>

標簽:

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部