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("处理业务完毕")
}
相关推荐
一技安身几秒前
【信创】统信UOS 银河麒麟离线部署Python3.11完整方案
android·java·python3.11
陈皮波比茶15 分钟前
k8s 快速入门
java·kubelet
Json____21 分钟前
基于 Spring Boot + Vue3 的校园自习室座位预约系统实战
java·管理系统·it学习·wwwoop.com
计算机毕设定制辅导-无忧学长25 分钟前
《基于Java的旧物回收管理系统设计与实现》
java·开发语言
彧azz27 分钟前
Java学习语法篇:键盘录入
java·笔记·学习
xcl092531 分钟前
24小时自助健身房系统开发:从架构设计到落地实践
java·spring boot
焦虑的说说38 分钟前
jvm专题
java
ruleslol1 小时前
System Prompt(系统提示词) 的用法
java·ai
user_admin_god1 小时前
第 03 篇:Java HttpClient 手写第一个 Chat 请求
java·人工智能·spring boot·语言模型