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("处理业务完毕")
}
相关推荐
小单于PRO4 小时前
Spring Boot 实现构建一个轻量级地图瓦片服务
java·spring boot·后端
Selegant4 小时前
Spring Boot 3 + Java 21 全新特性实战:虚拟线程、结构化并发与 Record 类型
java·spring boot·后端
Jinkxs5 小时前
Java 架构 02:DDD 领域模型设计实战(限界上下文划分)
java·开发语言·架构
百锦再5 小时前
国产数据库的平替亮点——关系型数据库架构适配
android·java·前端·数据库·sql·算法·数据库架构
爱笑的眼睛115 小时前
文本分类的范式演进:从统计概率到语言模型提示工程
java·人工智能·python·ai
周杰伦_Jay5 小时前
【Go/Python/Java】基础语法+核心特性对比
java·python·golang
sszdlbw5 小时前
后端springboot框架入门学习--第一篇
java·spring boot·学习
小鹿学程序5 小时前
jdk配置完之后java -version还是默认的jdk版本如何更改
java·开发语言·python
她说彩礼65万5 小时前
C# 反射
java·算法·c#
hhy_smile5 小时前
Android 与 java 设计笔记
android·java·笔记