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

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

背景知識

進程與線程

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

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

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

線程

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

我簡單的打個比方,比如一臺計算機是一家公司,不考慮其他的,加入把研發(fā)部門比做CPU的話,一個公司一般會只有一個研發(fā)部門(假設(shè)只研發(fā)一款產(chǎn)品)。公司所有的研發(fā)工作都是交由這個研發(fā)部門負責(zé),可能這個研發(fā)部門會有不止一個的研發(fā)小組,都可以做同樣的一件研發(fā)工作,那么計算機中的內(nèi)核就可以類似于研發(fā)小組,他們可以同時的做相同的工作,但如果他們需要同時使用公司的生產(chǎn)線那么這可能就存在問題,下面再來說。如果公司給研發(fā)組2放假了,那么他們就可以不用干活輕松的休息,這是公司配發(fā)了研發(fā)任務(wù)應(yīng)該是由研發(fā)組1來完成,如果公司又給了一個任務(wù)給研發(fā)組1,那么研發(fā)組就屬于并發(fā)狀態(tài),他們的做任務(wù)就是線程。他們小組的leader開會說,根據(jù)公司的章程,咱們接到了兩個任務(wù),那我們就按周輪流來做吧。在計算機中這可能就是有操作系統(tǒng)來決定的。假設(shè)是每個星期一切換任務(wù),那么周一的時候的工作效率可能會比較低,因為要花費不少時間來做任務(wù)的切換工作,收集資料和整理資料,這就是線程切換的開銷。

假如任務(wù)一需要使用公司的計算機房,任務(wù)二也需要,我們從現(xiàn)實的宏觀角度來看的話,感覺這完全沒有問題,這周機房處理任務(wù)一,下周機房處理任務(wù)二。但是仔細想想其實是存在問題的,加入我們在周六到交一些數(shù)據(jù)給機房處理,比如說模型訓(xùn)練,可能在我們交接任務(wù)的約定時間周一的時候,他們還沒有處理完成,而小組1的又給了他們?nèi)蝿?wù),那么這就存在的資源問題,機房可能會在門口掛上了“任務(wù)中,請勿打擾”,所以就有了鎖的這個概念,表示現(xiàn)在忙,暫時不能進行訪問。

異步回調(diào)

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

他們新來外號面條的就說,你們連這個都不懂啊,我一直都是這么干的。

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

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

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

并發(fā)

開始說說重點,并發(fā)了。記得有個“七天七”系列的書,當(dāng)然這和國內(nèi)“X天”系列不一樣,這個系列本本算得好書,其中就有一本是《七天七并發(fā)》,可惜當(dāng)時在圖書館找到時,我快畢業(yè)了。

有不少編程語言實在語言級別實現(xiàn)的并發(fā),例如,Erlang、Haskell、Scala、Clojure,以及比較年輕的Golang。相信這些都聽過,我個人是真的沒有去仔細研究過,借這次機會好好看看。

并發(fā)模型

  • Communicating Sequential Processes
  • Actor

資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,993評論 2 374

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,664評論 25 708
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,324評論 11 349
  • 忻卉:姐姐,我討厭我恨某某人,可是,我又想到宇宙法則是你想啥宇宙就擴大啥,擔(dān)心這樣的恨法,會讓我更情...
    玉忻卉閱讀 285評論 0 1
  • 一段話送給正在為理想奮斗的小伙伴們,愿與大家共勉: 我們能走多久,靠的不是雙腳,而是志向,鴻鵠志在蒼宇,燕雀心系檐...
    永不放棄哥閱讀 217評論 0 0
  • 晚上散步隨拍 作了一下簡單的編輯
    和為貴0608閱讀 132評論 1 1