日韩精品在线看_黄色成人美女网站_偷窥自拍亚洲色图精选_五月激情综合

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

當(dāng)前位置:首頁  >  IT面試題  >  大數(shù)據(jù)面試題  >  正文

nio和bio的區(qū)別,為啥nio好

來源:千鋒教育
發(fā)布時(shí)間:2022-09-26 11:47:28
分享

  同步阻塞IO(JAVA BIO/Blocking IO ): 同步并阻塞,服務(wù)器實(shí)現(xiàn)模式為一個(gè)連接一個(gè)線程,即客戶端有連接請(qǐng)求時(shí)服務(wù)器端就需要啟動(dòng)一個(gè)線程進(jìn)行處理,如果這個(gè)連接不做任何事情會(huì)造成不必要的線程開銷.

  Java NIO(Non-Blocking IO ) : 同步非阻塞,服務(wù)器實(shí)現(xiàn)模式為一個(gè)請(qǐng)求一個(gè)線程,即客戶端發(fā)送的連接請(qǐng)求都會(huì)注冊(cè)到多路復(fù)用器上,多路復(fù)用器輪詢到連接有I/O請(qǐng)求時(shí)才啟動(dòng)一個(gè)線程進(jìn)行處理。

  NIO的優(yōu)點(diǎn)在于首先基于緩存讀寫文件,能夠批量操作,然后用channel雙向讀寫數(shù)據(jù),減少每次打開斷開流的資源消耗。

  引入selecore的概念,用一個(gè)線程管理多個(gè)通道,大大減少線程開銷。

nio和bio的區(qū)別,為啥nio好

  Java AIO(NIO.2) : 異步非阻塞,服務(wù)器實(shí)現(xiàn)模式為一個(gè)有效請(qǐng)求一個(gè)線程,客戶端的I/O請(qǐng)求都是由OS先完成了再通知服務(wù)器應(yīng)用去啟動(dòng)線程進(jìn)行處理,NIO方式適用于連接數(shù)目多且連接比較短(輕操作)的架構(gòu),比如聊天服務(wù)器,并發(fā)局限于應(yīng)用中,編程比較復(fù)雜,JDK1.4開始支持。

  AIO方式使用于連接數(shù)目多且連接比較長(zhǎng)(重操作)的架構(gòu),比如相冊(cè)服務(wù)器,充分調(diào)用OS參與并發(fā)操作,編程比較復(fù)雜,JDK7開始支持I/O屬于底層操作,需要操作系統(tǒng)支持,并發(fā)也需要操作系統(tǒng)的支持,所以性能方面不同操作系統(tǒng)差異會(huì)比較明顯。

  另外NIO的非阻塞,需要一直輪詢,也是一個(gè)比較耗資源的。所以出現(xiàn)AIO

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

學(xué)習(xí)資源站

  • 免費(fèi)全套視頻教程
  • 企業(yè)實(shí)戰(zhàn)項(xiàng)目源碼
  • 大廠筆試真題題庫
  • 行業(yè)前瞻發(fā)展趨勢(shì)

相關(guān)推薦

  • 請(qǐng)列舉幾個(gè)常用的Linux命令 man :幫助命令 sudo : 獲取root權(quán)限 jps : 查看java進(jìn)程 ps -ef : 查看進(jìn)程 ps -aux : 查看進(jìn)程 netstat -nltcp : 監(jiān)聽端口 free : 內(nèi)存查看 top :動(dòng)態(tài) 查看服務(wù)器資源信息
  • 單利模式是什么,線程安全嗎? 也就是說通過單例我們可以實(shí)現(xiàn)數(shù)據(jù)的全局訪問,還可以再全局實(shí)現(xiàn)功能的調(diào)用.單例分成懶漢式和餓漢式,對(duì)于懶漢式會(huì)有線程安全問題,需要進(jìn)行同步處理,對(duì)于餓漢式不會(huì)有線程安全問題,不需要同步.
  • nio和bio的區(qū)別,為啥nio好 同步阻塞IO(JAVA BIO/Blocking IO ): 同步并阻塞,服務(wù)器實(shí)現(xiàn)模式為一個(gè)連接一個(gè)線程,即客戶端有連接請(qǐng)求時(shí)服務(wù)器端就需要啟動(dòng)一個(gè)線程進(jìn)行處理,如果這個(gè)連接不做任何事情會(huì)造成不必要的線程開銷.
  • threadlocal原理 因?yàn)樵谏厦娴拇a分析過程中,我們發(fā)現(xiàn)如果沒有先set的話,即在map中查找不到對(duì)應(yīng)的存儲(chǔ),則會(huì)通過調(diào)用setInitialValue方法返回i,而在setInitialValue方法中,有一個(gè)語句是T value = initialValue(), 而默認(rèn)情況下,init...
  • arrayList和LinkedList的區(qū)別 Linkedlist基于鏈表的動(dòng)態(tài)數(shù)組,數(shù)據(jù)添加刪除效率高,只需要改變指針指向即可,但是訪問數(shù)據(jù)的平均效率低,需要對(duì)鏈表進(jìn)行遍歷。對(duì)于新增和刪除操作add和remove,LinedList比較占優(yōu)勢(shì),因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)。
  • 垃圾回收機(jī)制(算法原理) 復(fù)制清除法:將內(nèi)存分為兩塊,其中一塊寫滿后,遍歷對(duì)象標(biāo)記有用的對(duì)象復(fù)制到另一塊,然后把這一塊清理,這樣復(fù)制的內(nèi)容很少而且內(nèi)存始終連續(xù),缺點(diǎn)是始終需要有一塊內(nèi)存空出來用于復(fù)制。
  • 主站蜘蛛池模板: 井研县| 徐汇区| 井陉县| 秭归县| 鄂州市| 佳木斯市| 保亭| 宿松县| 琼结县| 赫章县| 上犹县| 禄劝| 钦州市| 柯坪县| 兖州市| 中山市| 尚义县| 德惠市| 寿光市| 白山市| 苏尼特左旗| 富平县| 永寿县| 綦江县| 中方县| 沾化县| 遂川县| 房产| 于田县| 惠来县| 阿城市| 双桥区| 沂水县| 车险| 翁源县| 贵南县| 临邑县| 普宁市| 黔南| 东山县| 循化|