七週七併發模型

image.png

七個模型來介紹併發與並行。

  • 線程與鎖:線程與鎖模型有很多衆所周知的不足,但仍是其他模型的技術基礎,也是很多並 發軟件開發的首選。
  • 函數式編程:函數式編程日漸重要的原因之一,是其對併發編程和並行編程提供了良好的支 持。函數式編程消除了可變狀態,所以從根本上是線程安全的,而且易於並行執行。
  • Clojure之道——分離標識與狀態:編程語言Clojure是一種指令式編程和函數式編程的混搭方 案,在兩種編程方式上取得了微妙的平衡來發揮兩者的優勢。
  • actor:actor模型是一種適用性很廣的併發編程模型,適用於共享內存模型和分佈式內存模型, 也適合解決地理分佈型問題,能提供強大的容錯性。
  • 通信順序進程(Communicating Sequential Processes,CSP):表面上看,CSP模型與actor模 型很相似,兩者都基於消息傳遞。不過CSP模型側重於傳遞信息的通道,而actor模型側重於通道 兩端的實體,使用CSP模型的代碼會帶有明顯不同的風格。
  • 數據級並行:每個筆記本電腦裏都藏着一臺超級計算機——GPU。GPU利用了數據級並行, 不僅可以快速進行圖像處理,也可以用於更廣闊的領域。如果要進行有限元分析、流體力學計算 或其他的大量數字計算,GPU的性能將是不二選擇。
  • Lambda架構:大數據時代的到來離不開並行——現在我們只需要增加計算資源,就能具有 處理TB級數據的能力。Lambda架構綜合了MapReduce和流式處理的特點,是一種可以處理多種 大數據問題的架構。

以上每種模型都有各自的甜區。  這個模型適用於解決併發問題、並行問題,還是兩者皆可?  這個模型適用於哪種並行架構?  這個模型是否有利於我們寫出容錯性強的代碼,或用於解決分佈式問題的代碼?


個人介紹: 高廣超:多年一線互聯網研發與架構設計經驗,擅長設計與落地高可用、高性能、可擴展的互聯網架構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章