无码色偷偷亚洲国内自拍_国产男女性潮高清免费网站_69SEX久久精品国产麻豆_日本高清在线一区二区三区

千鋒教育-做有(you)情(qing)懷、有(you)良心、有(you)品(pin)質的職業教育機構

當前位置(zhi):首頁  >  IT面試題  >  大數據面試題  >  正文

nio和bio的區別,為啥nio好

來源:千鋒教育
發布時間:2022-09-26 11:47:28
分享

  同步阻塞IO(JAVA BIO/Blocking IO ): 同步并(bing)阻塞,服務器實現模式(shi)為一(yi)個連接(jie)一(yi)個線程,即(ji)客(ke)戶端有連接(jie)請求(qiu)時服務器端就(jiu)需要(yao)啟(qi)動(dong)一(yi)個線程進行處理,如果這個連接(jie)不做任(ren)何事情會造成不必(bi)要(yao)的線程開銷.

  Java NIO(Non-Blocking IO ) : 同(tong)步(bu)非阻(zu)塞,服務器實現模式為(wei)一(yi)個請求(qiu)(qiu)一(yi)個線(xian)程,即客戶端發(fa)送的連接請求(qiu)(qiu)都會注冊到多(duo)路(lu)復用器上,多(duo)路(lu)復用器輪(lun)詢到連接有I/O請求(qiu)(qiu)時才啟動一(yi)個線(xian)程進行處理。

  NIO的優點在于(yu)首先(xian)基于(yu)緩存(cun)讀寫(xie)文件,能夠批量操作,然后用channel雙(shuang)向讀寫(xie)數據,減少每(mei)次(ci)打開斷開流的資源消耗(hao)。

  引入selecore的概念,用一個線(xian)程(cheng)管(guan)理多(duo)個通(tong)道,大大減少線(xian)程(cheng)開銷。

  Java AIO(NIO.2) : 異(yi)步非阻塞,服務(wu)器(qi)實現模式為一個有效(xiao)請(qing)求(qiu)(qiu)一個線(xian)(xian)程,客戶端的I/O請(qing)求(qiu)(qiu)都是由OS先完成(cheng)了再通(tong)知服務(wu)器(qi)應(ying)用(yong)去啟動線(xian)(xian)程進(jin)行處理(li),NIO方式適(shi)用(yong)于連(lian)接數目多(duo)且連(lian)接比較短(輕操作)的架構,比如聊天服務(wu)器(qi),并發局限于應(ying)用(yong)中,編程比較復雜,JDK1.4開始支持(chi)。

  AIO方(fang)式使(shi)用于連(lian)接數目(mu)多且連(lian)接比(bi)較長(重操(cao)作(zuo)(zuo))的架構,比(bi)如相冊服務器,充(chong)分(fen)調用OS參(can)與并發操(cao)作(zuo)(zuo),編程比(bi)較復(fu)雜,JDK7開始支持(chi)I/O屬于底層(ceng)操(cao)作(zuo)(zuo),需要操(cao)作(zuo)(zuo)系統支持(chi),并發也(ye)需要操(cao)作(zuo)(zuo)系統的支持(chi),所以性能方(fang)面不(bu)同操(cao)作(zuo)(zuo)系統差(cha)異會比(bi)較明顯。

  另外(wai)NIO的非阻塞,需要(yao)一直輪詢(xun),也是一個比較耗資源的。所以出現AIO

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

相關推薦

  • 請列舉幾個常用的Linux命令 man :幫助命令 sudo : 獲取root權限 jps : 查看java進程 ps -ef : 查看進程 ps -aux : 查看進程 netstat -nltcp : 監聽端口 free : 內存查看 top :動態 查看服務器資源信息
  • 單利模式是什么,線程安全嗎? 也就是說通過單例我們可以實現數據的全局訪問,還可以再全局實現功能的調用.單例分成懶漢式和餓漢式,對于懶漢式會有線程安全問題,需要進行同步處理,對于餓漢式不會有線程安全問題,不需要同步.
  • nio和bio的區別,為啥nio好 同步阻塞IO(JAVA BIO/Blocking IO ): 同步并阻塞,服務器實現模式為一個連接一個線程,即客戶端有連接請求時服務器端就需要啟動一個線程進行處理,如果這個連接不做任何事情會造成不必要的線程開銷.
  • threadlocal原理 因為在上面的代碼分析過程中,我們發現如果沒有先set的話,即在map中查找不到對應的存儲,則會通過調用setInitialValue方法返回i,而在setInitialValue方法中,有一個語句是T value = initialValue(), 而默認情況下,init...
  • arrayList和LinkedList的區別 Linkedlist基于鏈表的動態數組,數據添加刪除效率高,只需要改變指針指向即可,但是訪問數據的平均效率低,需要對鏈表進行遍歷。對于新增和刪除操作add和remove,LinedList比較占優勢,因為ArrayList要移動數據。
  • 垃圾回收機制(算法原理) 復制清除法:將內存分為兩塊,其中一塊寫滿后,遍歷對象標記有用的對象復制到另一塊,然后把這一塊清理,這樣復制的內容很少而且內存始終連續,缺點是始終需要有一塊內存空出來用于復制。