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("处理业务完毕")
}
相关推荐
希望永不加班3 分钟前
SpringBoot 接口签名验证(AppKey/Secret)
java·spring boot·后端·spring
fengxin_rou26 分钟前
RabbitMQ安装教程:windows本地安装和docker部署
java·分布式·后端·rabbitmq
a8a30232 分钟前
Laravel7.x核心特性全解析
java·spring boot·后端
AI人工智能+电脑小能手36 分钟前
【大白话说Java面试题】【Java基础篇】第19题:HashMap的key如何减少发生哈希冲突
java·开发语言·后端·面试·哈希算法·hash-index·hash
coderlin_43 分钟前
Langgraph项目三 agent搭建
java·数据库·redis
xyx-3v1 小时前
信号量(二进制/计数)
java·linux·数据库
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第18题:HashMap底层是如何扩容的
java·开发语言·面试·散列表·hash-index·hash
想躺平的小羊1 小时前
IDEA 如何显示或关闭项目类的结构(类的方法)
java·ide·intellij-idea
A-Jie-Y1 小时前
JAVA设计模式-建造者模式
java·设计模式
曹牧1 小时前
Java Web 开发:servlet-mapping‌
java·数据仓库·hive·hadoop