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("处理业务完毕")
}
相关推荐
zhaokuner24 分钟前
12-深层模型与重构-DDD领域驱动设计
java·开发语言·设计模式·架构
weixin_4407305034 分钟前
java面向对象OPP-三大特性
java·开发语言·python
No芒柠Exception39 分钟前
Spring Boot 实现分片上传、断点续传与进度条
java·后端
k***921644 分钟前
如何在C++的STL中巧妙运用std::find实现高效查找
java·数据结构·c++
君爱学习1 小时前
Spring AI简介
java
EnzoRay1 小时前
注解
java
宇宙之大,无奇不有(一个玩暗区的人)1 小时前
[NOIP 2011 普及组]T1 数字反转
java·开发语言·算法
HashFlag1 小时前
单元测试(go)
golang·单元测试
技术小泽1 小时前
搜索系统架构入门篇
java·后端·算法·搜索引擎
benpaodeDD1 小时前
黑马springboot1
java·开发语言·spring boot