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("处理业务完毕")
}
相关推荐
MayBaymax17 分钟前
Spring AI Alibaba Graph 快速上手:黑板、节点、边
java·spring·ai·ai编程
斑鸠喳喳21 分钟前
可重入锁 ReentrantLock
java·源码
IT枫斗者枫哥22 分钟前
Spring AI 聊天记忆落库:重启后,怎样接上上一轮对话
java
devpotato23 分钟前
HashMap 扩容机制:从源码细节到工程实践
java
yueping223 分钟前
如何用idea打开jar包
java
IT_Octopus26 分钟前
从一个应用开发者的角度,搞懂大数据查询的完整链路
java·大数据·数据库
许彰午33 分钟前
51-BpmnDesigner集成
java·低代码·架构
蜗牛互联网33 分钟前
Claude放宽生命科学限制:代价是验证、分级和30天留存
java·人工智能·后端
泡海椒1 小时前
评分系统最佳实践:JQuick-Java实现权重、阈值动态配置评分
java·人工智能·python
三克的油1 小时前
java-学习1
java·开发语言·学习