golang 第三方库(1)——goid(获取goroutine id) - Go语言中文社区

golang 第三方库(1)——goid(获取goroutine id)


一、参考

golang学习系列目录——更新ing

goid

二、基本使用

获取当前运行 goroutineid

2.1 安装

GO111MODULE=on go get -u github.com/petermattis/goid

2.2 示例

 1  package sync1
 2
 3  import (
 4      "fmt"
 5      "runtime"
 6      "strconv"
 7      "strings"
 8      "testing"
 9
 10     "github.com/petermattis/goid"
 11 )
 12
 13 func TestGetGoID(t *testing.T) {
 14
 15     var buf [64]byte
 16     n := runtime.Stack(buf[:], false)
 17     idField := strings.Fields(strings.TrimPrefix(string(buf[:n]), "goroutine "))[0]
 18     id, err := strconv.Atoi(idField)
 19     if err != nil {
 20         panic(fmt.Sprintf("can not get goroutine id: %v", err))
 21     }
 22     fmt.Println("get goroutine id: ", id)
 23 }
 24
 25 func TestGetGoID2(t *testing.T) {
 26     gid := goid.Get()
 27     fmt.Println("get goroutine id is ", gid)
 28 }
版权声明:本文来源Segmentfault,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://segmentfault.com/a/1190000039911106
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-13 21:45:28
  • 阅读 ( 1630 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢