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("处理业务完毕")
}
相关推荐
张宜强5 分钟前
025 安居租赁 · 房屋租赁平台
java·课程设计
Java_2017_csdn12 分钟前
ReentrantLock 与 Redis RLock 对比解读
java
YDS82913 分钟前
Small Spring IOC篇:实现 Bean 的定义、注册、获取
java·spring
边境悍匪16 分钟前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring
需要8261 小时前
Arthas 一个命令排查线上问题
java·jvm·spring·spring cloud
Kyrie_kk1 小时前
Java--ProcessBuilder操作系统进程
java·后端
SamDeepThinking1 小时前
关于java final关键字的可见性
java·后端·面试
Wang's Blog2 小时前
Java 项目实战: 外卖平台-MyBatis-Plus分页插件与员工分页查询
java·项目开发
MetaLite2 小时前
全网最好的SpringBoot接口请求对象设计
java·spring boot·后端
蜗牛互联网2 小时前
AI给面试打分不够,求职者更需要可核对的证据
java·人工智能·后端