面試之后--并發(fā)模型

前幾天,參加了幾次面試,結(jié)果很糟糕骂际。一來是因?yàn)闆]有做準(zhǔn)備,二是平時(shí)對(duì)那些概念也沒有太注意,只是看到覺得理所當(dāng)然是這樣钦椭,并沒有仔細(xì)考究拧额!現(xiàn)在發(fā)覺這根本就是一種無求知欲的表現(xiàn)碑诉,這里決定好好溫習(xí)一下之前的知識(shí)。

背景知識(shí)

進(jìn)程與線程

進(jìn)程的英文名是 Process侥锦,是計(jì)算機(jī)程序執(zhí)行后的實(shí)例进栽,她包含了程序代碼和當(dāng)前的所有資源。在一般的操作系統(tǒng)中恭垦,她可能是由多個(gè)線程組成來完成并發(fā)[Concurrency]任務(wù)快毛,而多個(gè)進(jìn)程應(yīng)該是完成并行(Parallelism)任務(wù)。關(guān)于并發(fā)與并行下面也會(huì)涉及到相關(guān)區(qū)別番挺。

線程的英文名是 Thread唠帝,她是對(duì)計(jì)算機(jī)調(diào)度的一個(gè)最小粒度,她是包含在一個(gè)進(jìn)程中的玄柏,一個(gè)進(jìn)程中的線程是共享一片內(nèi)存區(qū)域襟衰,實(shí)質(zhì)上講他們并不是一個(gè)很實(shí)體話可東西,比較抽象粪摘,需要加上時(shí)間的維度才能區(qū)別開來瀑晒。

下面是一張Wiki百科上的圖,能夠很清晰的表明線程與進(jìn)程的關(guān)系徘意。

線程

個(gè)人拙見以為進(jìn)程是與計(jì)算機(jī)的核數(shù)(Processor)有關(guān)的苔悦,一般地,幾核的CPU就應(yīng)該能產(chǎn)生幾個(gè)進(jìn)程椎咧。

我簡(jiǎn)單的打個(gè)比方玖详,比如一臺(tái)計(jì)算機(jī)是一家公司,不考慮其他的邑退,加入把研發(fā)部門比做CPU的話竹宋,一個(gè)公司一般會(huì)只有一個(gè)研發(fā)部門(假設(shè)只研發(fā)一款產(chǎn)品)。公司所有的研發(fā)工作都是交由這個(gè)研發(fā)部門負(fù)責(zé)地技,可能這個(gè)研發(fā)部門會(huì)有不止一個(gè)的研發(fā)小組蜈七,都可以做同樣的一件研發(fā)工作,那么計(jì)算機(jī)中的內(nèi)核就可以類似于研發(fā)小組莫矗,他們可以同時(shí)的做相同的工作飒硅,但如果他們需要同時(shí)使用公司的生產(chǎn)線那么這可能就存在問題,下面再來說作谚。如果公司給研發(fā)組2放假了三娩,那么他們就可以不用干活輕松的休息,這是公司配發(fā)了研發(fā)任務(wù)應(yīng)該是由研發(fā)組1來完成妹懒,如果公司又給了一個(gè)任務(wù)給研發(fā)組1雀监,那么研發(fā)組就屬于并發(fā)狀態(tài),他們的做任務(wù)就是線程。他們小組的leader開會(huì)說会前,根據(jù)公司的章程好乐,咱們接到了兩個(gè)任務(wù),那我們就按周輪流來做吧瓦宜。在計(jì)算機(jī)中這可能就是有操作系統(tǒng)來決定的蔚万。假設(shè)是每個(gè)星期一切換任務(wù),那么周一的時(shí)候的工作效率可能會(huì)比較低临庇,因?yàn)橐ㄙM(fèi)不少時(shí)間來做任務(wù)的切換工作反璃,收集資料和整理資料,這就是線程切換的開銷假夺。

假如任務(wù)一需要使用公司的計(jì)算機(jī)房淮蜈,任務(wù)二也需要,我們從現(xiàn)實(shí)的宏觀角度來看的話侄泽,感覺這完全沒有問題礁芦,這周機(jī)房處理任務(wù)一,下周機(jī)房處理任務(wù)二悼尾。但是仔細(xì)想想其實(shí)是存在問題的柿扣,加入我們?cè)谥芰浇灰恍?shù)據(jù)給機(jī)房處理,比如說模型訓(xùn)練闺魏,可能在我們交接任務(wù)的約定時(shí)間周一的時(shí)候未状,他們還沒有處理完成,而小組1的又給了他們?nèi)蝿?wù)析桥,那么這就存在的資源問題司草,機(jī)房可能會(huì)在門口掛上了“任務(wù)中,請(qǐng)勿打擾”泡仗,所以就有了鎖的這個(gè)概念埋虹,表示現(xiàn)在忙,暫時(shí)不能進(jìn)行訪問娩怎。

異步回調(diào)

我們傳統(tǒng)的過程式程序可能就跟比較古板的小組1一樣搔课,到期咱就切換任務(wù)嗎。他們覺得這種方式還是不能把工作效率提高到最高截亦。他們開會(huì)就討論怎么能提高這個(gè)效率呢爬泥,有個(gè)外號(hào)蟒蛇的就說呀,他覺得有時(shí)候等PCB的測(cè)試板實(shí)在是比較耗時(shí)間崩瓤,有時(shí)候一兩天啥事沒有袍啡,就是干等著板子打出來做測(cè)試,這期間也不知道干啥却桶。不過最近有個(gè)朋友告訴我一個(gè)比較好的工作方法境输,先做好任務(wù)的規(guī)劃,把哪些可以同時(shí)做的事情列出來,以后就按照這個(gè)表來做嗅剖,有空閑就去做其他的事情蛋逾,等前面做的東西可以繼續(xù)了,就繼續(xù)回頭做前面的事情窗悯。

他們新來外號(hào)面條的就說,你們連這個(gè)都不懂啊偷拔,我一直都是這么干的蒋院。

前面蟒蛇提到的問題就是平時(shí)經(jīng)常碰到的阻塞,比如磁盤IO莲绰,網(wǎng)絡(luò)IO這些比較耗時(shí)間的操作欺旧。他那個(gè)朋友(Gevent)教的方法就是異步。

異步回調(diào)蛤签,就是遇到阻塞時(shí)辞友,就去做其他的事情(新的線程),當(dāng)之前的產(chǎn)生結(jié)果了就把那個(gè)結(jié)果拿回來處理震肮,但是這不是在你原來的形成規(guī)劃中称龙。

對(duì)于上面的例子,蟒蛇可能就對(duì)PCB生產(chǎn)線上的人說戳晌,他就不在這守著了鲫尊,做好給個(gè)電話,他自己去取就好了沦偎,或者陪人送到他辦公室疫向。這就是異步的通訊與回調(diào)機(jī)制,打電話通知他就是告訴他完成的這個(gè)消息豪嚎,他在過來取走搔驼;而寄到他辦公室,就是直接把執(zhí)行的結(jié)果返回到預(yù)定的地方侈询,他會(huì)每天都檢查一下是否有結(jié)果了舌涨。

并發(fā)

開始說說重點(diǎn),并發(fā)了妄荔。記得有個(gè)“七天七”系列的書泼菌,當(dāng)然這和國(guó)內(nèi)“X天”系列不一樣,這個(gè)系列本本算得好書啦租,其中就有一本是《七天七并發(fā)》哗伯,可惜當(dāng)時(shí)在圖書館找到時(shí),我快畢業(yè)了篷角。

有不少編程語(yǔ)言實(shí)在語(yǔ)言級(jí)別實(shí)現(xiàn)的并發(fā)焊刹,例如,Erlang、Haskell虐块、Scala俩滥、Clojure,以及比較年輕的Golang贺奠。相信這些都聽過霜旧,我個(gè)人是真的沒有去仔細(xì)研究過,借這次機(jī)會(huì)好好看看儡率。

并發(fā)模型

  • Communicating Sequential Processes
  • Actor

資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挂据,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子儿普,更是在濱河造成了極大的恐慌崎逃,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眉孩,死亡現(xiàn)場(chǎng)離奇詭異个绍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)浪汪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門巴柿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吟宦,你說我怎么就攤上這事篮洁。” “怎么了殃姓?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵袁波,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蜗侈,道長(zhǎng)篷牌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任踏幻,我火速辦了婚禮枷颊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘该面。我一直安慰自己夭苗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布隔缀。 她就那樣靜靜地躺著题造,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猾瘸。 梳的紋絲不亂的頭發(fā)上界赔,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天丢习,我揣著相機(jī)與錄音,去河邊找鬼淮悼。 笑死咐低,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的袜腥。 我是一名探鬼主播见擦,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼羹令!你這毒婦竟也來了锡宋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤特恬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后徐钠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體癌刽,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年尝丐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了显拜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡爹袁,死狀恐怖远荠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情失息,我是刑警寧澤譬淳,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站盹兢,受9級(jí)特大地震影響邻梆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绎秒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一浦妄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧见芹,春花似錦剂娄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至把鉴,卻和暖如春故黑,著一層夾襖步出監(jiān)牢的瞬間儿咱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工场晶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留混埠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓诗轻,卻偏偏與公主長(zhǎng)得像钳宪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扳炬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,749評(píng)論 25 707
  • 從三月份找實(shí)習(xí)到現(xiàn)在吏颖,面了一些公司,掛了不少恨樟,但最終還是拿到小米半醉、百度、阿里劝术、京東缩多、新浪、CVTE养晋、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,209評(píng)論 11 349
  • 忻卉:姐姐衬吆,我討厭我恨某某人,可是绳泉,我又想到宇宙法則是你想啥宇宙就擴(kuò)大啥逊抡,擔(dān)心這樣的恨法,會(huì)讓我更情...
    玉忻卉閱讀 270評(píng)論 0 1
  • 一段話送給正在為理想奮斗的小伙伴們零酪,愿與大家共勉: 我們能走多久冒嫡,靠的不是雙腳,而是志向四苇,鴻鵠志在蒼宇灯谣,燕雀心系檐...
    永不放棄哥閱讀 212評(píng)論 0 0
  • 晚上散步隨拍 作了一下簡(jiǎn)單的編輯
    和為貴0608閱讀 124評(píng)論 1 1