久久国产精品久久中文,国产精选视频网站,国产欧美va欧美va在观看 http://www.51zclw.cn 寶寶取名 公司起名 專家起名 周易起名 姓氏起名 Thu, 23 Feb 2023 08:05:19 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.8.2 http://www.51zclw.cn/wp-content/uploads/2023/04/2023042403580774.png 線程 – 寶寶取名網(wǎng) http://www.51zclw.cn 32 32 robi?robin! http://www.51zclw.cn/archives/30178 Thu, 23 Feb 2023 08:04:54 +0000 http://www.51zclw.cn/?p=30178 IONIO、BIO 傻傻分不清嗎,面試官必問知識(shí)點(diǎn)

哈嘍!大家好,我是猿之生活,一位熱愛分享的程序員,希望本文章對你我都有幫助。

前提基礎(chǔ)知識(shí)

同步和異步

同步和異步描述的是消息通信的機(jī)制。

  • 同步:按順序執(zhí)行,最后才把結(jié)果返回。同步調(diào)用的調(diào)用者一定會(huì)得到被調(diào)用者的結(jié)果。
  • 異步:不必按順序執(zhí)行,被調(diào)用者先返回,再處理業(yè)務(wù)邏輯。

阻塞和非阻塞

阻塞和非阻塞描述的是程序在等待調(diào)用結(jié)果(消息,返回值)時(shí)的狀態(tài)。

  • 阻塞:調(diào)用方在等待被調(diào)用方返回結(jié)果時(shí)不做任何事情;
  • 非阻塞:調(diào)用者在等待被調(diào)用者返回結(jié)果來處理其他事情。

并發(fā)和并行

  • 并發(fā):在一段時(shí)間內(nèi),幾個(gè)程序在同一個(gè)CPU上運(yùn)行。
  • 并行:幾個(gè)程序在一段時(shí)間內(nèi)運(yùn)行在不同的CPU上,在任意一個(gè)時(shí)間點(diǎn),都有多個(gè)程序同時(shí)運(yùn)行,互不干擾。

IO、BIO、NIO簡介

BIO簡介

同步阻塞式IO,數(shù)據(jù)的讀取寫入必須在一個(gè)線成內(nèi)等待并完成,如果時(shí)間處理時(shí)間長,則阻塞,直至完成。

BIO通信模型:一請求一應(yīng)答

用戶線程進(jìn)行 read (讀)操作時(shí),需要等待執(zhí)行操作,此時(shí)線程是被阻塞的,無法執(zhí)行其他操作。

NIO簡介

同步非阻塞式IO,關(guān)采用了事件驅(qū)動(dòng)的思想,主要來實(shí)現(xiàn)了一個(gè)多路轉(zhuǎn)換器。NIO支持面向緩沖。

NIO 組件包括Buffer(緩沖區(qū))、Channel(管道、通道)、Selector(選擇器,多路復(fù)用器)。

NIO與BIO區(qū)別

只需要一個(gè)線程就可以處理來自多個(gè)客戶端的IO事件。

NIO實(shí)現(xiàn)代碼

I/O

I/O是Input輸入/Output輸出的簡稱,通常指數(shù)據(jù)在計(jì)算機(jī)硬件或其他周邊設(shè)備之間的輸入和輸出。

AIO

AIO 用來解決數(shù)據(jù)復(fù)制階段的阻塞問題。

三者總結(jié)

]]>