麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

并發并行同步異步多線程的區別

2019-11-08 03:09:40
字體:
來源:轉載
供稿:網友

同步和異步的概念: 同步:同步就是指一個進程在執行某個請求的時候,若該請求需要一段時間才能返回信息,那么這個進程將會一直等待下去,直到收到返回信息才繼續執行下去

異步:異步是指進程不需要一直等下去,而是繼續執行下面的操作,不管其他進程的狀態。當有消息返回時系統會通知進程進行處理,這樣可以提高執行的效率。

并發 并行 同步 異步 多線程的區別: 1.并發:在操作系統中,是指一個時間段中有幾個程序都處于已啟動運行到運行完畢之間,且這幾個程序都是在同一個處理機上運行。其中兩種并發關系分別是同步和互斥

2.互斥:進程間相互排斥的使用臨界資源的現象,就叫互斥。

3.同步:進程之間的關系不是相互排斥臨界資源的關系,而是相互依賴的關系。進一步的說明:就是前一個進程的輸出作為后一個進程的輸入,當第一個進程沒有輸出時第二個進程必須等待。具有同步關系的一組并發進程相互發送的信息稱為消息或事件。 其中并發又有偽并發和真并發,偽并發是指單核處理器的并發,真并發是指多核處理器的并發。

4.并行:在單處理器中多道程序設計系統中,進程被交替執行,表現出一種并發的外部特種;在多處理器系統中,進程不僅可以交替執行,而且可以重疊執行。在多處理器上的程序才可實現并行處理。從而可知,并行是針對多處理器而言的。并行是同時發生的多個并發事件,具有并發的含義,但并發不一定并行,也亦是說并發事件之間不一定要同一時刻發生。

5.多線程:多線程是程序設計的邏輯層概念,它是進程中并發運行的一段代碼。多線程可以實現線程間的切換執行。

6.異步:異步和同步是相對的,同步就是順序執行,執行完一個再執行下一個,需要等待、協調運行。異步就是彼此獨立,在等待某事件的過程中繼續做自己的事,不需要等待這一事件完成后再工作。線程就是實現異步的一個方式。異步是讓調用方法的主線程不需要同步等待另一線程的完成,從而可以讓主線程干其它的事情。 異步和多線程并不是一個同等關系,異步是最終目的,多線程只是我們實現異步的一種手段。異步是當一個調用請求發送給被調用者,而調用者不用等待其結果的返回而可以做其它的事情。實現異步可以采用多線程技術或則交給另外的進程來處理。

事例: 為了對以上概念的更好理解舉一個簡單例子,假設我要做燒開水,舉杠鈴100下,洗衣服3件事情。 燒開水 這件事情, 我要做的事情為,準備燒開水1分鐘,等開水燒開 8 分鐘,關掉燒水機1分鐘 舉杠鈴100下 我要做的事情為, 舉杠鈴100下10分鐘 洗衣服 我要做的事情為,準備洗衣服1分鐘,等開水燒開 5 分鐘,關掉洗衣機1分鐘

單核情況下: 同步的完成,我需要做的時間為 1+ 8 +1 + 10 + 1+ 5 +1 = 27 分

如果異步: 就是在等的時候,我可以切換去做別的事情 準備燒開水(1) + 準備洗衣服(1) + 舉50下杠鈴 (5)分鐘+ 關洗衣機 1分鐘 + 舉杠鈴20下 (2)分鐘+ 關燒水機 1分鐘 + 舉30下杠鈴(3)分鐘 1+1+5+1+2+1+3 =14分鐘

雙核 異步 并行: 核1 準備燒開水1分鐘+ 舉杠鈴50下(5)分鐘+ 等待3分鐘 + 關掉燒水機1分鐘 核2 準備洗衣服1分鐘+ 舉杠鈴50下(5)分鐘+ 關掉洗衣機1分鐘 + 等待3分鐘 其實只花了 1+5+3+1 = 10分鐘 其中還有雙核都等待了3分鐘

雙核 異步 非并行: 核1 舉杠鈴100下(10)分鐘 核2 準備燒開水1分鐘+ 準備洗衣服 1分鐘+ 等待5分鐘+ + 關掉燒水機1分鐘 + 等待1分鐘 + 關掉洗衣機1分鐘 其實只花了1+5+3+1 = 10分鐘

多線程的做法: 單核下 線程1 準備燒開水 1分鐘, 等開水燒開 8 分鐘 , 關掉燒水機 1分鐘 線程2 舉杠鈴100下 10分鐘 線程3 準備洗衣服 1分鐘, 等開水燒開 5 分鐘 , 關掉洗衣機 1分鐘

cpu 可能這么切換 最理想的切換方式 線程1 準備燒開水1 sleep 1 sleep 5 sleep 1 sleep 2 關開水 1分鐘 exit 線程2 sleep 1 sleep 1 舉杠鈴50 5分鐘 sleep 1 舉杠鈴20 2分鐘 sleep1 舉杠鈴30下 3分鐘 線程3 sleep 1 準備洗衣服1 分鐘 sleep 5 關洗衣機1分鐘 exit 最后使用了 14分鐘 和異步是一樣的。 但是實際上是不一樣的,因為線程不會按照我們設想的去跑,如果線程2舉杠鈴先跑,整個流程的速度就下來了。

總結: 異步和同步的區別: 在io等待的時候,同步不會切走,浪費了時間。 如果都是獨占cpu 的業務,比如舉杠鈴的業務,在單核情況下多線程和單線程沒有區別。

多線程的好處: 比較容易的實現了異步切換的思想,因為異步的程序很難寫的。多線程本身程還是以同步完成,但是應該說 比效率是比不上異步的。而且多線很容易寫,相對效率也高。

多核的好處,就是可以同時做事情,這個和單核完全不一樣的。 附技術框架學習圖譜: http://download.csdn.net/detail/bryant_liu24/9738649


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕在线观看国产 | 午夜男人免费视频 | 成年人视频在线免费观看 | www.国产一区.com | 国产精品av久久久久久网址 | 色视频在线 | 中文字幕视频在线播放 | www.com超碰 | 久久久免费观看完整版 | 亚洲精品久久久久久久久久久 | 亚洲精品a在线观看 | 福利四区 | chinese中国真实乱对白 | 斗罗破苍穹在线观看免费完整观看 | 一级黄色电影网站 | 久久精品视频日本 | 色综合视频 | 销魂美女一区二区 | 在线看一级片 | 久久久一区二区三区视频 | 新久草在线视频 | 无码av女优| 一级做a爱片久久毛片a高清 | 久久精品中文字幕 | 日韩黄色一级视频 | 亚洲精品tv久久久久久久久久 | 免费黄色大片在线观看 | 成人情欲视频在线看免费 | 羞羞网站在线看 | 欧美精品一区二区三区在线 | 亚洲va久久久噜噜噜久牛牛影视 | 免费观看一级黄色片 | 国产九色在线观看 | 精品国产一区二区三区成人影院 | 成人三级视频网站 | 国产精品久久久久久久久久iiiii | 一级在线观看视频 | 日本在线一区二区 | porno video hd 365hd | 亚洲免费视频一区 | 欧美日韩后|