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("处理业务完毕")
}
相关推荐
2601_970703839 小时前
中国除湿机与湿度控制行业研究报告
java·大数据·人工智能
深入云栈9 小时前
Netty 4.2.x 源码深度解析 (二十一):Pipeline 事件传播 —— Inbound 与 Outbound 的双向流转
java·后端·架构
爱敲代码的TOM9 小时前
10.27 易购软件 Java开发线下一面
java·开发语言
yuzhiboyouye9 小时前
String、StringBuilder、StringBuffer 区别(面试题)
java
斯维赤9 小时前
微信步数的10点定时推送,看似简单,实则暗藏玄机
java·后端
Linux_cy10 小时前
服务器管理方案选型:面板 / SSH 客户端 / 桌面型客户端怎么选
java·linux·运维·服务器·ssh·可视化·gmssh
可乐_不渴10 小时前
【Linux】 进程虚拟地址空间
java·linux·javascript
SimonKing10 小时前
号外号外,Stream-Nexus推送项目支持集群部署了
java·后端·程序员
vipxieliang10 小时前
ValidX vs 正则表达式:可读性与维护性对比
java·spring boot
3378010 小时前
5分钟搞懂登录认证和授权框架Spring Security
java·spring boot