基於鎖和線程的併發模型是目前最常用的一種併發模型,但是併發編程模型不僅僅只有這一種,瞭解和熟悉各種併發編程模型,在解決併發問題時會有更多思路。” ...
1.線程與鎖
線程與鎖模型有很多眾所周知的不足,但仍是其他模型的技術基礎,也是很多併發軟體開發的首選。
2.函數式編程
函數式編程日漸重要的原因之一,是其對併發編程和並行編程提供了良好的支持。函數式編程消除了可變狀態,所以從根本上是線程安全的,而且易於並行執行。
3.Clojure之道——分離標識與狀態
編程語言Clojure是一種指令式編程和函數式編程的混搭方案,在兩種編程方式上取得了微妙的平衡來發揮兩者的優勢。
4.actor
actor模型是一種適用性很廣的併發編程模型,適用於共用記憶體模型和分散式記憶體模型,也適合解決地理分佈型問題,能提供強大的容錯性。
5.通信順序進程(Communicating Sequential Processes,CSP)
錶面上看,CSP模型與actor模型很相似,兩者都基於消息傳遞。不過CSP模型側重於傳遞信息的通道,而actor模型側重於通道兩端的實體,使用CSP模型的代碼會帶有明顯不同的風格。
6. 數據級並行
每個筆記本電腦里都藏著一臺超級電腦——GPU。GPU利用了數據級並行,不僅可以快速進行圖像處理,也可以用於更廣闊的領域。如果要進行有限元分析、流體力學計算或其他的大量數字計算,GPU的性能將是不二選擇。
7.Lambda架構
大數據時代的到來離不開並行——現在我們只需要增加計算資源,就能具有處理TB級數據的能力。Lambda架構綜合了MapReduce和流式處理的特點,是一種可以處理多種大數據問題的架構。
註:文章轉載自網路,如果您覺得本文對您有幫助,歡迎關註我的公眾號【Java技術zhai】,有新文章發佈會第一時間通知您。