golang 锁bug 记录

例如 会先获取了读锁,协程里面有个写锁,如果整体还嵌套了读锁,直接出现死锁了 ,卡在all_lock_test.RLock() ,读锁永远也不能释放了

go 复制代码
package routes

import (
	"fmt"
	"sync"
	"testing"
	"time"
)

var all_lock_test sync.RWMutex

func TestSendGiftInfo_SendBlind(t *testing.T) {
	if !all_lock_test.TryRLock() {
		return
	}
	defer all_lock_test.RUnlock()

	go func() {
		all_lock_test.Lock()
		defer all_lock_test.Unlock()
		fmt.Println("配置更新")
	}()
	time.Sleep(time.Second)
	rDeal()

}

func rDeal() {
	all_lock_test.RLock()
	defer all_lock_test.RUnlock()
	fmt.Println("处理业务完毕")
}
相关推荐
荣码1 分钟前
Java后端用LangChain搭大模型应用,我踩了5个坑
java
JAVA9651 分钟前
JAVA面试-并发篇 04-synchronized和ReentrantLock 的区别是什么
java·面试
我是一只码蚁3 分钟前
《别再死记面向对象了,我家咖啡机就是最好的老师》
java·后端
ZenosDoron4 分钟前
malloc规范
java·开发语言
codeejun4 分钟前
每日一Go-71、理论知识:CAP 、一致性原理 、Raft 机制(简化实现一个 Raft)
java·开发语言·golang
阿杰 AJie5 分钟前
ExcelUtils样式相关工具
java·后端
Aotman_6 分钟前
JavaScript数组对象中指定字段转换
java·开发语言·前端·javascript·vue.js·前端框架·es6
skywalker_1112 分钟前
Maven速通
java·maven
garmin Chen14 分钟前
Elasticsearch(4):Java Rest Client 搜索与聚合速查
java·分布式·elasticsearch
曾几何时`16 分钟前
Go(一)Gin框架 和 GORM机制
开发语言·golang·gin