同步报慕、異步深浮、阻塞、非阻塞眠冈、并行飞苇、并發(fā)

并行菌瘫、并發(fā)

并行和并發(fā)比較好理解

  • 并發(fā):是指一段時間內(nèi),有幾個線程都在同一個CPU上運行布卡,但任意一個時刻點上只有一個線程在CPU上運行雨让,但是是通過切換時間片的方式交替進(jìn)行。
  • 并行:是指一個時間段內(nèi)忿等,多個線程真正的同時運行栖忠,這種情況只會出現(xiàn)在多CPU或者多核的系統(tǒng)中,多個CPU核心同時分別處理不同的線程贸街。

阻塞庵寞、非阻塞

當(dāng)線程中調(diào)用某個函數(shù),需要IO請求薛匪,或者暫時得不到競爭資源捐川,操作系統(tǒng)會把該線程阻塞起來,避免浪費CPU資源逸尖,等得到了資源古沥,再變成runnable狀態(tài),等待CPU調(diào)度娇跟。阻塞和非阻塞用來形容多線程間的相互影響岩齿。

  • 阻塞:如果一個線程占有了臨界區(qū)資源(一般指鎖),那么其他需要這個臨界資源(鎖)的線程必須進(jìn)行等待該線程釋放鎖逞频,這樣就會導(dǎo)致其他等待線程的阻塞
  • 非阻塞:是指沒有一個線程可以阻塞其他線程纯衍,所有的線程都會嘗試往前運行。

同步苗胀、異步

  • 同步:在發(fā)出一個同步調(diào)用時襟诸,在沒有得到結(jié)果之前,該調(diào)用就不會返回
  • 異步:在發(fā)出一個異步調(diào)用后基协,調(diào)用者不會立刻得到結(jié)果歌亲,而是直接返回,等得到結(jié)果之后再異步通知調(diào)用者結(jié)果澜驮。

同步例子

int n = func();
next();
//func()的結(jié)果沒有返回陷揪,next()就不會執(zhí)行,直到func()方法中的代碼運行完并返回

異步例子

Callback callback = new Callback() {   //func結(jié)果回調(diào)
        @Override
    public void onResult(int n) {
        // n就是異步執(zhí)行完之后的結(jié)果
    }
};
func(callback);
next();
//func方法里面可能有異步的耗時操作杂穷,這里直接傳過去一個callback悍缠,然后直接返回,接著執(zhí)行next方法
//等到func中的耗時操作執(zhí)行完之后,再通過callback回調(diào)通知調(diào)用者結(jié)果

同步與阻塞耐量、異步與非阻塞是完全不同的概念飞蚓。同步和異步形容的是方法調(diào)用時是否立即返回;阻塞和非阻塞形容的是多線程并行運行時對資源的占有情況廊蜒。
同步調(diào)用的時候趴拧,雖然調(diào)用沒有立即返回溅漾,但是它在運行狀態(tài)中,CPU很可能還在執(zhí)行這段代碼著榴;而如果一個線程被阻塞了添履,它一定是放棄了CPU的執(zhí)行權(quán),不再在CPU中運行了脑又。

上面兩組概念就有了4中組合:

  • 同步阻塞調(diào)用:得不到結(jié)果不返回暮胧,線程進(jìn)入阻塞狀態(tài)等待
  • 同步非阻塞調(diào)用:得不到結(jié)果不返回,線程不阻塞一直在CPU運行
  • 異步阻塞調(diào)用:調(diào)用的時候開啟另一個線程挂谍,調(diào)用者立即返回叔壤,另一個線程運行時由于得不到鎖或者等待IO操作而進(jìn)入阻塞狀態(tài)。等獲取到鎖或者IO執(zhí)行完成口叙,會繼續(xù)執(zhí)行炼绘,得到結(jié)果之后通知調(diào)用者
  • 異步非阻塞調(diào)用:調(diào)用的時候開啟另一個線程,調(diào)用者立即返回妄田,另一個線程運行時不會因為得不到鎖或者IO操作而阻塞俺亮。該線程得到結(jié)果之后異步通知調(diào)用者。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疟呐,一起剝皮案震驚了整個濱河市脚曾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌启具,老刑警劉巖本讥,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鲁冯,居然都是意外死亡拷沸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門薯演,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撞芍,“玉大人,你說我怎么就攤上這事跨扮⌒蛭蓿” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵衡创,是天一觀的道長帝嗡。 經(jīng)常有香客問我,道長璃氢,這世上最難降的妖魔是什么哟玷? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮拔莱,結(jié)果婚禮上碗降,老公的妹妹穿的比我還像新娘。我一直安慰自己塘秦,他們只是感情好讼渊,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尊剔,像睡著了一般爪幻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上须误,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天挨稿,我揣著相機與錄音,去河邊找鬼京痢。 笑死奶甘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的祭椰。 我是一名探鬼主播臭家,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼方淤!你這毒婦竟也來了钉赁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤携茂,失蹤者是張志新(化名)和其女友劉穎你踩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讳苦,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡带膜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了医吊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钱慢。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖卿堂,靈堂內(nèi)的尸體忽然破棺而出束莫,到底是詐尸還是另有隱情,我是刑警寧澤草描,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布览绿,位于F島的核電站,受9級特大地震影響穗慕,放射性物質(zhì)發(fā)生泄漏饿敲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一逛绵、第九天 我趴在偏房一處隱蔽的房頂上張望怀各。 院中可真熱鬧倔韭,春花似錦、人聲如沸瓢对。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硕蛹。三九已至醇疼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間法焰,已是汗流浹背秧荆。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留埃仪,地道東北人乙濒。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像贵试,于是被迫代替她去往敵國和親琉兜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

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