在共享地址空間模式存在於存儲器 進程之間共享和表示爲數據結構的公共地址空間(如ConcurrentHashMap
)。由於共享對象位於一臺計算機上,因此具有非常快速的數據共享優勢(爲簡單起見,我們可以這麼假設)。當進程可能發生衝突時,各種鎖機制(互斥鎖)有助於確保共享內存的互斥。 該方案缺乏可擴展性,因爲處理器數量的增加可以提高共享內存上的通信量,而單臺計算機不能超過8個處理器。Java共享地址空間和消息傳遞並行編程範式
在消息傳遞模型沒有全局地址空間感。每個 進程都有一個私有本地內存。進程可以通過傳遞消息與其他每個 進行通信。與共享地址空間不同,消息傳遞模型提供了處理器和內存之間的可伸縮性,但需要複製公用數據。處理器的增加也會成比例地增加內存(對於該數據)的大小,儘管在這種情況下不需要鎖定機制。
閱讀「Thinking in Java」獲取靈感我只找到一個關於具有同步原則的共享地址空間模型的討論。隨着我的問題越來越複雜,我將嘗試消息傳遞範式,就我不盲目而言,這不在書中。
您能否推薦Java本地類或任何已證實的外部庫來處理消息傳遞模型,如C++中的MPI?任何鏈接到該來源將不勝感激!