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("处理业务完毕")
}
相关推荐
yangminlei2 分钟前
Elasticsearch 全面解析:从原理到实战的分布式搜索引擎指南
java·elk
菜宾7 分钟前
java-分布式面试题(事务+锁+消息队列+zookeeper+dubbo+nginx+es)
java·开发语言·分布式
Remember_9939 分钟前
【LeetCode精选算法】位运算专题一
java·开发语言·数据结构·leetcode·哈希算法
橙露10 分钟前
CGO性能深度剖析:成因、评估与优化全指南
java·jvm·myeclipse
逍遥德14 分钟前
Java Stream Collectors 用法
java·windows·python
Getgit17 分钟前
mysql批量更新语句
java·数据库·mysql·udp·eclipse
黎雁·泠崖17 分钟前
Java静态变量底层:内存图解析+避坑指南
java·开发语言
派大鑫wink19 分钟前
【Day48】MyBatis 注解开发:替代 XML 映射文件
xml·java·mybatis
Gary董20 分钟前
java死锁
java·开发语言
LiLiYuan.26 分钟前
在资源管理器打开IDEA未进行版本管理的文件的方法
java·ide·intellij-idea