一次相親經(jīng)歷惑灵,我徹底搞懂了什么叫阻塞非阻塞,同步異步

看到標(biāo)題眼耀,可能你會(huì)想英支,相親跟阻塞/非阻塞,同步/異步有啥關(guān)系哮伟,這個(gè)逗b不知道在想什么東西干花。不要急,且聽(tīng)我慢慢道來(lái)
年紀(jì)大了楞黄,一回家七大姑八大姨就各種催婚池凄,都說(shuō)要給我介紹女朋友。這不鬼廓,剛剛門口肿仑,我的大姨,二叔碎税,三大爺就已經(jīng)在門口蹲著我了

大姨:“大外甥啊尤慰,給你介紹個(gè)女朋友要不咯?”


我(心理活動(dòng)):要個(gè)鬼啊雷蹂,我還年輕伟端,女朋友還在幼兒園呢!再說(shuō)了匪煌,程序員需要女朋友嘛责蝠?暗辰怼?霜医?昧港?代碼就是我媳婦兒
我:“當(dāng)然要呀,大姨你介紹的支子,怎么滴都得去看看呀” 大姨:“好创肥,大外甥!相信大姨值朋,你在原地不要走動(dòng)叹侄,等我去找我鄰居的外婆家的二兒子的堂弟的侄女,保證給你要到電話昨登。之后就看你本事了趾代!”

我(心理活動(dòng)):........,怕是要等到原地爆炸丰辣,之后還得自己去撩撒强,唉~ 我的姨還是這么的不靠譜
這就是同步阻塞

大姨一走,我三叔立馬沖了上來(lái) 三叔:“別信你姨的笙什,她鄰居的外婆家的二兒子的堂弟的侄女什么樣我不知道嗎飘哨,來(lái),叔給你介紹個(gè)”琐凭,一邊說(shuō)著芽隆,一邊掏出了手機(jī),照片大概是這個(gè)樣子
image.png

不要問(wèn)我為什么沒(méi)有臉统屈,看到這苗條的身姿胚吁,豪邁的步伐,更重要的是比我還少的頭發(fā)愁憔,還要去看臉嗎腕扶?我深吸一口氣,“叔吨掌,我沒(méi)猜錯(cuò)的話半抱,她也是個(gè)程序員吧?” 三叔:“厲害啊思犁,大侄子代虾,這你都知道进肯,我就說(shuō)你們合適吧”“

我(心里活動(dòng)):我XXXXX激蹲,此處省略5000字
我:“.......................” 我:“得嘞,我是不是也得在這等著您去要電話敖凇学辱?” 三叔:“想什么呢乘瓤?我能跟你大姨一樣嗎?你先回去拾掇拾掇策泣,每過(guò)5分鐘給我打個(gè)電話衙傀,問(wèn)問(wèn)情況就行。不過(guò)叔只負(fù)責(zé)給你要電話啊萨咕,能不能成還得靠你自己统抬!”

我(心里活動(dòng)):唉~,打電話就打電話吧危队,至少可以回去坐會(huì)兒了聪建。
我:“......................,好的茫陆,我會(huì)過(guò)段時(shí)間就問(wèn)候下您老人家的” 三叔:“信不信我一巴掌抽死你金麸?” 我:“..................”

這就是同步非阻塞

進(jìn)門,剛剛躺上我心愛(ài)的小沙發(fā)簿盅,三大爺又來(lái)了 三大爺:“年輕人挥下,知道你為什么沒(méi)有女朋友嘛?知道我來(lái)干什么的嘛?” 我:“大爺,難道你有什么秘訣相授桨醋?” 此時(shí)我腦海里浮現(xiàn)出這樣一幅圖:
image.png

我:“大爺棚瘟,其實(shí)我想自己努力,我不是這樣的人喜最,不過(guò)你要是非要給我的話蜡坊,我也不太好意思拒絕?國(guó)外的你有嗎变勇?” 三大爺:“信不信我一巴掌抽死你站绪?” “不要廢話,看照片遂鹊,行不行振乏,給句話” “只要你娃兒說(shuō)行,剩下的全交給你大爺就行秉扑,等你見(jiàn)到面的時(shí)候慧邮,她就是你女朋友了,撩都不用你撩舟陆,你該干嘛干嘛去”

我(心里活動(dòng)):你大爺還是你大爺
我:“大爺威武误澳!”

這就是異步非阻塞

看完這個(gè)故事,你懂了嗎秦躯?忆谓?ps:此故事純屬虛構(gòu),如有雷同踱承,那你就逗笑我了倡缠,哈哈哈哨免!
image.png

還不懂?沒(méi)關(guān)系昙沦,接著往下看琢唾,我們進(jìn)入正式的開(kāi)車環(huán)節(jié)!

首先盾饮,我們要知道一次IO的過(guò)程必然會(huì)有三個(gè)角色的參與

應(yīng)用程序
內(nèi)核
數(shù)據(jù)

以一次數(shù)據(jù)的讀取為例采桃,應(yīng)用程序是沒(méi)有辦法直接操縱硬件設(shè)備的,只有通過(guò)內(nèi)核才能跟硬件交互丘损。當(dāng)網(wǎng)卡接收到數(shù)據(jù)之后芍碧,此時(shí)數(shù)據(jù)在網(wǎng)卡中,需要內(nèi)核將網(wǎng)卡中的數(shù)據(jù)讀取到內(nèi)核空間中号俐,再?gòu)膬?nèi)核空間拷貝到用戶空間泌豆,這個(gè)時(shí)候應(yīng)用程序才拿到數(shù)據(jù),讀取數(shù)據(jù)結(jié)束吏饿。
在上面相親的這個(gè)過(guò)程中一共也有三個(gè)角色踪危,分別是


媒婆(大姨,二叔猪落,三大爺)
我的相親對(duì)象(一個(gè)未知女性)原諒我沒(méi)有用女生這個(gè)詞匯贞远,你們懂的,知道通訊錄的人想法不一樣
類比于IO過(guò)程中的三個(gè)角色

應(yīng)用程序(我)
內(nèi)核(媒婆)
IO的數(shù)據(jù)(相親對(duì)象)
對(duì)于我而言笨忌,最終目的是為了找到女朋友蓝仲, 對(duì)于應(yīng)用程序而言,最終始要讀取到數(shù)據(jù)官疲。

我向媒婆發(fā)起了一個(gè)找女朋友的請(qǐng)求(雖然我是被迫的袱结,不要在意這些細(xì)節(jié)),對(duì)于程序而言途凫,就是程序向內(nèi)核發(fā)起了一個(gè)讀取數(shù)據(jù)的請(qǐng)求垢夹。

首先說(shuō)我大姨:在這一次交互過(guò)程中,如果大姨沒(méi)有給到我電話號(hào)碼维费,那么此時(shí)我只能原地等待果元,什么都干不了,哪里都不能去犀盟,所以我被找女朋友這件事阻塞了而晒,直達(dá)大姨告訴我,電話要到了阅畴,這個(gè)時(shí)候才能繼續(xù)下去倡怎,其次,請(qǐng)注意大姨只負(fù)責(zé)告訴我電話號(hào)碼,通過(guò)這個(gè)電話號(hào)碼把這個(gè)女性撩成女朋友這件事還是要我去做诈胜,所以我找女朋友這個(gè)過(guò)程是同步的豹障。
image.png

類比應(yīng)用程序的IO冯事,就相當(dāng)于應(yīng)用程序發(fā)起了一個(gè)IO請(qǐng)求(以讀取數(shù)據(jù)為例)焦匈,此時(shí)需要進(jìn)行一次系統(tǒng)調(diào)用,內(nèi)核由用戶態(tài)切換到內(nèi)核態(tài)昵仅,內(nèi)核開(kāi)始跟硬件設(shè)備進(jìn)行交互并從硬件設(shè)備中讀取數(shù)據(jù)缓熟,此時(shí)可能硬件設(shè)備還沒(méi)有接收到數(shù)據(jù),所以內(nèi)核函數(shù)一直阻塞摔笤,直到數(shù)據(jù)到達(dá)才進(jìn)行返回够滑。這就是同步阻塞模型

而對(duì)二叔而言:在跟二叔的交互過(guò)程中,并不需要我一直等待二叔給我找到電話號(hào)碼吕世,只需要過(guò)一段時(shí)間打電話問(wèn)候一次我二叔就行了彰触,他會(huì)向我返回是否拿到了電話號(hào)碼,在這期間我可以做任何事情命辖,所以我沒(méi)有被找女朋友這件事情阻塞况毅。但是,當(dāng)我從二叔手中拿到電話的時(shí)候尔艇,我還是需要將這個(gè)未知女性撩成我的女朋友尔许,所以我找女朋友這個(gè)過(guò)程還是同步的。這就是同步非阻塞模型
image.png

類比應(yīng)用程序的IO终娃,當(dāng)應(yīng)用程序發(fā)起了一次讀取數(shù)據(jù)的請(qǐng)求味廊,還是會(huì)發(fā)起系統(tǒng)調(diào)用,但是此時(shí)內(nèi)核根據(jù)硬件中是否有數(shù)據(jù)執(zhí)行不同的操作棠耕,如果有數(shù)據(jù)余佛,那么將數(shù)據(jù)拷貝到用戶空間,如果沒(méi)有數(shù)據(jù)也會(huì)返回一個(gè)標(biāo)志窍荧,比如-1衙熔,應(yīng)用程序在輪詢期間并沒(méi)有一直阻塞,而是可以進(jìn)行執(zhí)行搅荞。這就是同步非阻塞

再看我三大爺:三大爺就牛逼了红氯,我向三大爺發(fā)起一個(gè)找女朋友的請(qǐng)求,然后就等著女朋友送上門咕痛。我就問(wèn)你叼不叼吧痢甘?不僅不需要在這傻等,也不用經(jīng)常問(wèn)候茉贡,甚至撩都不用撩了塞栅,叼不叼!腔丧!叼不叼7乓W餮獭!你大爺永遠(yuǎn)是你大爺
image.png

類比應(yīng)用程序的IO砾医,應(yīng)用程序只需要發(fā)起一次讀取數(shù)據(jù)的請(qǐng)求拿撩,接下來(lái)就等著內(nèi)核將數(shù)據(jù)拷貝到用戶空間,并且內(nèi)核將數(shù)據(jù)拷貝完成后會(huì)通知應(yīng)用程序如蚜,在整個(gè)過(guò)程中程序可以繼續(xù)往下執(zhí)行压恒。類似下面這樣的代碼:
image.png

看到這里,你懂了嗎错邦?
image.png

用通俗的語(yǔ)言描述

阻塞/非阻塞:描述的是發(fā)起請(qǐng)求的人的狀態(tài)探赫,比如:我在發(fā)起相親請(qǐng)求后,一直處于阻塞狀態(tài)撬呢,一直在原地等待伦吠,什么都不能做。
同步/異步:代表的是請(qǐng)求被完成的方式魂拦,如果最終還是由我完成的毛仪,那么就是同步的,如果不是由我完成的晨另,而是別人完成后通知我的就是異步的
用專業(yè)的話來(lái)說(shuō)就是

阻塞/非阻塞:描述的是調(diào)用者調(diào)用方法后的狀態(tài)潭千,比如:線程A調(diào)用了B方法,A線程處于阻塞狀態(tài)借尿。
同步/異步:描述的方法跟調(diào)用者間通信的方式刨晴,如果不需要調(diào)用者主動(dòng)等待,調(diào)用者調(diào)用后立即返回路翻,然后方法本身通過(guò)回調(diào)狈癞,消息通知等方式通知調(diào)用者結(jié)果,就是異步的茂契。如果調(diào)用方法后一直需要調(diào)用者一直等待方法返回結(jié)果蝶桶,那么就是同步的
基于上面兩點(diǎn),可以推導(dǎo)出:

異步阻塞是沒(méi)有意義的掉冶,也就是不存在異步阻塞這種說(shuō)法真竖。你想想,事情都不需要我做了厌小,我還阻塞著干嘛恢共?王者榮耀不香嗎?

我的java基礎(chǔ)學(xué)習(xí)交流峮:1080621881 璧亚。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讨韭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌透硝,老刑警劉巖狰闪,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異濒生,居然都是意外死亡埋泵,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門甜攀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秋泄,“玉大人琐馆,你說(shuō)我怎么就攤上這事规阀。” “怎么了瘦麸?”我有些...
    開(kāi)封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵谁撼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我滋饲,道長(zhǎng)厉碟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任屠缭,我火速辦了婚禮箍鼓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘呵曹。我一直安慰自己款咖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布奄喂。 她就那樣靜靜地躺著铐殃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪跨新。 梳的紋絲不亂的頭發(fā)上富腊,一...
    開(kāi)封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音域帐,去河邊找鬼赘被。 笑死,一個(gè)胖子當(dāng)著我的面吹牛肖揣,可吹牛的內(nèi)容都是我干的民假。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼许饿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼阳欲!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤球化,失蹤者是張志新(化名)和其女友劉穎秽晚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筒愚,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赴蝇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巢掺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片句伶。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖陆淀,靈堂內(nèi)的尸體忽然破棺而出考余,到底是詐尸還是另有隱情,我是刑警寧澤轧苫,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布楚堤,位于F島的核電站,受9級(jí)特大地震影響含懊,放射性物質(zhì)發(fā)生泄漏身冬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一岔乔、第九天 我趴在偏房一處隱蔽的房頂上張望酥筝。 院中可真熱鬧,春花似錦雏门、人聲如沸嘿歌。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)搅幅。三九已至,卻和暖如春呼胚,著一層夾襖步出監(jiān)牢的瞬間茄唐,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工蝇更, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沪编,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓年扩,卻偏偏與公主長(zhǎng)得像蚁廓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厨幻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容