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