当前位置: 首页 > article >正文

go~协程阻塞分析

错误示例

type chanData struct {
   
	result string
	error  error
}

func Biz1() {
   
	t := time.NewTimer(time.Second * 10)
	ctx := context.Background()

	ch := make(chan chanData)
	go doChan(ctx, ch)

	fmt.Println("Biz1 begin")
	for {
   
		select {
   
		case <-t.C:
			fmt.Println("Biz1 to time")
			return
		case data := <-ch:
			fmt.Println("Biz1 data", jsonx.ToString(data.result), "Biz1 err", data.error.Error())
			return
		}
	}
}

type RecoverHook func()

func Recover(ctx context.Context, method string, hooks ...RecoverHook) {
   
	if err := recover(); err != nil {
   
		const size = 64 << 10
		buf := make([]byte, size)
		buf = buf[:runtime.Stack(buf, false)]

		fmt.Printf("panic err: %v\n%v\n end!!!\n", err, string(buf))
		for 

http://www.kler.cn/a/594063.html

相关文章:

  • 事件响应计划:网络弹性的关键
  • C# 表达式目录树:深入探讨表达式树的概念与应用
  • Excel知识库与LLM结合的解决方案分析
  • Uni-App 双栏联动滚动组件开发详解 (电梯导航)
  • 使用 `pytest` 框架时,可以通过极限封装将 YAML 文件的读取、解析
  • 8、Python 字符串处理与正则表达式实战指南
  • 【css酷炫效果】纯CSS实现全屏粒子连线
  • Qt 实现波浪填充的圆形进度显示
  • 【Java】TCP网络编程:从可靠传输到Socket实战
  • coze ai assistant Task5
  • 学术PPT模板_院士_国家科学技术奖_杰青基金_长江学者特聘教授_校企联聘长江_重点研发_优青_青长_青拔ppt制作案例
  • RAG优化:python实现基于问题生成(扩展语义表示、优化检索粒度和提升上下文关联性)的文档增强RAG
  • 高级数据结构应用:并查集、跳表、布隆过滤器与缓存结构
  • Android Jetpack Compose介绍
  • RabbitMQ八股文
  • 【软考-架构】8.3、ES-OAS-ERP-电子政务-企业信息化
  • 【机器学习】核心概念
  • MCU-芯片时钟与总线和定时器关系,举例QSPI
  • C# 语法糖
  • 京东API数据清洗与结构化存储:从JSON原始数据到MySQL实战