并发和并行的区别简单介绍
生活随笔
收集整理的這篇文章主要介紹了
并发和并行的区别简单介绍
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
并發(fā)和并行
- 并發(fā)是關(guān)于正確有效地控制對共享資源的訪問
同時完成多個任務(wù)。在開始處理其他任務(wù)之前,當(dāng)前任務(wù)不需要完成。并發(fā)解決了阻塞發(fā)生的問題。當(dāng)任務(wù)無法進一步執(zhí)行,直到外部環(huán)境發(fā)生變化時才會繼續(xù)執(zhí)行。最常見的例子是I/O,其中任務(wù)必須等待一些input(在這種情況下會被阻止)。這個問題產(chǎn)生在I/O密集型。
- 并行是使用額外的資源來更快地產(chǎn)生結(jié)果
同時在多個地方完成多個任務(wù)。這解決了所謂的計算密集型問題,如果將程序分成多個部分并在不同的處理器上編輯不同的部分,程序可以運行得更快。
術(shù)語混淆的原因在上面的定義中顯示:其中核心是“在同一時間完成多個任務(wù)。”并行性通過多個處理器增加分布。更重要的是,兩者解決了不同類型的問題:解決I/O密集型問題,并行化可能對你沒有任何好處,因為問題不是整體速度,而是阻塞。并且考慮到計算力限制問題并試圖在單個處理器上使用并發(fā)來解決它可能會浪費時間。兩種方法都試圖在更短的時間內(nèi)完成更多,但它們實現(xiàn)加速的方式是不同的,并且取決于問題所帶來的約束
- 純并發(fā):任務(wù)仍然在單個CPU上運行。純并發(fā)系統(tǒng)產(chǎn)生的結(jié)果比順序系統(tǒng)更快,但如果有更多的處理器,則運行速度不會更快
- 并發(fā)-并行:使用并發(fā)技術(shù),結(jié)果程序利用更多處理器并更快地生成結(jié)果
- 并行-并發(fā):使用并行編程技術(shù)編寫,如果只有一個處理器,結(jié)果程序仍然可以運行(Java 8?Streams就是一個很好的例子)。
- 純并行:除非有多個處理器,否則不會運行
總結(jié)
以上是生活随笔為你收集整理的并发和并行的区别简单介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刘奶奶绕口令(超难的绕口令)
- 下一篇: C语言指针-字符指针整型指针char*s