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("处理业务完毕")
}
相关推荐
前路不黑暗@17 小时前
Java项目:Java脚手架项目的公共模块的实现(二)
java·开发语言·spring boot·学习·spring cloud·maven·idea
人道领域17 小时前
Spring核心注解全解析
java·开发语言·spring boot
金牌归来发现妻女流落街头18 小时前
日志级别是摆设吗?
java·spring boot·日志
MOONICK18 小时前
C#基础入门
java·开发语言
女王大人万岁19 小时前
Golang标准库 CGO 介绍与使用指南
服务器·开发语言·后端·golang
程序员小假19 小时前
我们来说一下虚拟内存的概念、作用及实现原理
java·后端
悠哉清闲19 小时前
Future
java·开发语言·kotlin
徐同保19 小时前
python如何手动抛出异常
java·前端·python
极客先躯20 小时前
高级java每日一道面试题-2025年7月02日-基础篇[LangChain4j]-什么是 AiServices?它是如何简化 LLM 应用开发的?
java·开发语言
摇滚侠20 小时前
JWT 是 token 的一种格式,我的理解对吗?
java·人工智能·intellij-idea·spring ai·springaialibaba