type KeyLock struct {
m sync.Map
}
func (k *KeyLock) TryLock(key interface{}) bool {
_, ok := k.m.LoadOrStore(key, struct{}{})
return !ok
}
func (k *KeyLock) BLock(key interface{}) {
try:
if _, ok := k.m.LoadOrStore(key, struct{}{}); ok {
goto try
}
}
func (k *KeyLock) UnLock(key interface{}) {
k.m.Delete(key)
}
複製程式碼
Golang 自制簡易細粒度鎖
相關文章
- Java 細粒度鎖續篇Java
- 自制簡易前端MVC框架前端MVC框架
- Java 中常見的細粒度鎖實現Java
- 自制最簡易版vue.jsVue.js
- Java細粒度鎖實現的3種方式Java
- MySQL鎖(樂觀鎖、悲觀鎖、多粒度鎖)MySql
- oracle細粒度審計Oracle
- oracle審計-細粒度(轉)Oracle
- oracle 細粒度審計(fga)Oracle
- ASM條帶細粒度管理ASM
- rabbitmq簡易安裝詳細教程MQ
- Oracle OCP(52):細粒度審計Oracle
- mysql 行級鎖(按照粒度分類)MySql
- Golang學習筆記 – 標準庫”net/http”的簡析及自制簡單路由框架Golang筆記HTTP路由框架
- Oracle多粒度封鎖機制研究2Oracle
- Oracle多粒度封鎖機制研究1Oracle
- Oracle多粒度封鎖機制研究(zt)Oracle
- [譯]用Golang編寫一個簡易聊天室Golang
- 深入解析 Flink 細粒度資源管理
- ORACLE FGAC(細粒度許可權控制)(轉)Oracle
- 自制簡單的Tabs(Vue)Vue
- Oracle多粒度封鎖機制研究二(zt)Oracle
- Golang專案的配置管理——Viper簡易入門配置Golang
- 第17章-golang實現簡易的分散式系統Golang分散式
- 細粒度授權二三事,你瞭解多少?
- Fine-grainedauditing(FGA) 細粒度審計AI
- golang 中 channel 的詳細使用、使用注意事項及死鎖分析Golang
- c++自制鎖機程式--兩行程式碼C++行程
- MongoDB資料庫級別的鎖粒度介紹MongoDB資料庫
- 【go】golang中鎖的用法-互斥鎖Golang
- 研究生雜談-1粗粒度(Coarse-grained)VS細粒度(fine-grained)AI
- 細粒度訪問控制(Fine-Grained access control)的一個簡單例子AI單例
- 使用Virtual Private Database實現細粒度訪問控制Database
- 細粒度審計FGA儲存過程含義儲存過程
- 使用DBMS_RLS實現細粒度訪問控制
- 11g中物件細粒度管理一例物件
- GaussDB細粒度資源管控技術透視
- 【程式設計好習慣】青睞小粒度鎖薦程式設計