編輯:中級開發
NIO主要使用了Channel和Selector來實現,Java的Selector類似Winsock的Select模式,是一種基於事件驅動的,整個處理方法使用了輪訓的狀態機,如果你過去開發過SymBian應用的話這種方式有點像活動對象,好處就是單線程更節省系統開銷,NIO的好處可以很好的處理並發,對於android網游開發來說比較關鍵,對於多點Socket連接而言使用NIO可以大大減少線程使用,降低了線程死鎖的概率,畢竟手機游戲有UI線程,音樂線程,網絡線程,管理的難度可想而知,同時I/O這種低速設備將影響游戲的體驗。
NIO作為一種中高負載的I/O模型,相對於傳統的BIO (Blocking I/O)來說有了很大的提高,處理並發不用太多的線程,省去了創建銷毀的時間,如果線程過多調度是問題,同時很多線程可能處於空閒狀態,大大浪費了CPU時間,同時過多的線程可能是性能大幅下降,一般的解決方案中可能使用線程池來管理調度但這種方法治標不治本。使用NIO可以使並發的效率大大提高。當然NIO和JDK 7中的AIO還存在一些區別,AIO作為一種更新的當然這是對於Java而言,如果你開發過Winsock服務器,那麼IOCP這樣的I/O完成端口可以解決更高級的負載,當然了今天Android123主要給大家講解下為什麼使用NIO在android中有哪些用處。
NIO我們分為幾個類型分別描述,作為Java的特性之一,我們需要了解一些新的概念,比如ByteBuffer類,Channel,SocketChannel,ServerSocketChannel,Selector和SelectionKey。有關具體的使用,Android開發網將在明天詳細講解。網友可以在android SDK文檔中看下java.nio和Java.nio.channels兩個包了解。
簡介: HTML 5 針對移動 Web 應用程序引入了大量新特性,其中包括一些可視化特性,它們通常會帶來強烈的視覺沖擊。Canvas 是最引人注目的新 UI
收集用戶數據您已經創建了 Activity 主屏幕布局,現在可以創建用戶界面表單來收集數據了。在本例中,您將創建一個 Robotics Club R
簡介: 在這個由五個部分所組成的系列的第一部分中,您將接觸到移動 Web 應用程序中最流行的新技術:地理定位。高端智能手機都內置 GPS,現在您將了解 Web
在android開發應用中,默認的Button是由系統渲染和管理大小的。而我們看到的成功的移動應用,都是有著酷炫的外觀和使用體驗的。因此,我們在開發產品的時候,需要對默