亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有并發支持的 golang 哈希表

具有并發支持的 golang 哈希表

Go
鳳凰求蠱 2023-07-31 15:29:48
我需要使用一個非常大的哈希表,并從許多讀者和許多作者并行訪問它。是否有像map這樣的數據結構,支持許多并行讀取和寫入,而無需每次訪問鎖定整個結構?
查看完整描述

2 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

既然你要了地圖

每次訪問時無需鎖定整個結構

我指導您執行以下實施:

https://github.com/cornelk/hashmap

該項目使用許多CPU架構中常見的原子指令實現了純無鎖哈希圖數據結構

常規 gosync.Map仍然使用底層互斥鎖來鎖定相應的映射數據結構。


查看完整回答
反對 回復 2023-07-31
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

sync提供并發安全映射。

Map 類似于 Go 的 map[interface{}]interface{},但可以安全地由多個 goroutine 并發使用,無需額外的鎖定或協調。加載、存儲和刪除在分攤常量時間內運行。


盡管規范本身指出了應該使用這兩種特定情況(否則他們建議使用帶有鎖定機制的法線貼圖):

  1. 當給定鍵的條目僅寫入一次但讀取多次時,就像在只會增長的緩存中一樣

  2. 當多個 goroutine 讀取、寫入和覆蓋不相交的鍵集的條目時


查看完整回答
反對 回復 2023-07-31
  • 2 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號