有幾天,我想知道這四種類型的編程有什麼區別。我在谷歌搜索信息,但我不能回答我的問題,所以我決定問你,有人可以向我解釋一下嗎?謝謝 !多線程與併發vs並行與異步編程有什麼區別?
3
A
回答
6
你提到的編程關鍵字是指發明了具體的原因,解決計算和加工領域問題的技術。
什麼每種技術的目的一個簡明的本質來解決:
併發:有許多任務在手,我需要在他們每個人的堅定的進步,而不是完成一個並移到在串行方法中的下一個。讓我在每個進程上工作使在給定的時間點,有非零進度在兩個或多個任務。 (不一定同時發生)
並行:有一個在給我的設備資源單位時間內做更多的工作潛力。讓我用一些技術增加吞吐量,可能犧牲延時,讓我的任務(一個或多個)完成更快。
多線程:我的兩個設備的硬件和軟件有在程序執行多個線程的支持;讓我分裂計算密集型計算跨越這些處理器/核心/線程池!
異步:一組要完成的任務。 我正在執行其中一個目前。讓我打電話給我的朋友幫我出了一個任務,我希望他/她還是回到給我的結果而我繼續執行我的任務。
注意,以上討論的技術並不一定是相互排斥 。 具體而言,多線程是一種並行性,反過來確實會導致併發度超過1(非平凡的多線程)。
順便說一句,我一直保持着對並行計算的博客。在其中一篇文章中,我寫了關於在同一領域使用的行話。
http://magical-parallel-computing.blogspot.in/2017/04/parallel-computing-jargon.html
我希望它能幫助你在概念層面。
相關問題
- 1. 並行和多核編程有什麼區別?
- 2. nodejs多線程異步並行
- 3. .NET在開發多線程應用程序和並行編程之間有什麼區別?
- 4. 與Dropbox並行編程並行編程
- 5. 並行編程異步編程
- 6. 異步和多線程之間的內部區別是什麼?
- 7. 使用並行與線性程序的結果沒有區別
- 8. Python中並行編程中的Pool.map和Process有什麼區別?
- 9. NSMutableArray線程併發與GCD
- 10. 線程vs begininvoke vs異步
- 11. 從哪裏開始嚴重併發(多線程,並行?)編程
- 12. 線程與並行處理
- 13. 並行與線程 - 性能
- 14. 互斥與並行線程
- 15. 時間多線程和超線程之間有什麼區別?
- 16. .NET 4異步WebRequest與多線程
- 17. 錯誤與異常有什麼區別?
- 18. asp.net異步線程與pooling
- 19. 異步委託與線程
- 20. 線程與異步調用
- 21. 異步/等待與線程
- 22. 同步線程方法正在併發執行 - 爲什麼?
- 23. 使用C++異步並行編程async
- 24. 燕尾和併發有什麼區別?
- 25. 與openMP沒有並行線程
- 26. 併發多線程
- 27. 異步並等待沒有「線程」?我可以自定義發生了什麼?
- 28. C++ VS2010與「多線程DLL」和「多線程」的區別
- 29. 鎖定到單線程的異步編程和並行編程的性能
- 30. 並行線程和併發
回覆,「併發」:除了很好的解釋,這聽起來像你說的,你可以衡量進展情況「在給定的時間點。」我想知道你想說的是在一個給定的時間點可以完成兩個或更多的任務。,那些任務_overlap_)。 –
你說多線程意味着「......多於一個執行線程」;好的,但什麼是「執行線程?」如果您最近沒有嘗試向新手解釋它,那麼您可能不記得有些人可能難以想出這個想法。如果noob知道「執行上下文」和「調用棧」是什麼意思,你可以解釋實現。而且,在更高層次上,可以討論多線程作爲組織執行併發任務和/或處理異步事件的程序的一種方式。 –
@james大謝謝!哦,同樣,我已經提到,任務並不一定是同時發生的,所以它們不需要重疊,例如在共同例程的情況下。如果它們在時間上重疊,那麼它不僅僅是併發性,它也是並行性的;因爲重疊執行需要多個處理單元/工作者。 – varun