go中获取进程id用os.Getpid,怎么获取线程id呢

已邀请:

andylau004

赞同来自: Dingding

一般情况下这样实现。 不过频繁调用性能不太好。。建议自己实现。模拟之

func GoID() int { var buf [64]byte n := runtime.Stack(buf[:], false)

idField := strings.Fields(strings.TrimPrefix(string(buf[:n]), "goroutine "))[0]
GoroutineId, err := strconv.Atoi(idField)
if err != nil {
    panic( fmt.Sprintf("cannot get goroutine id: %v", err) )
}

return GoroutineId

}

Dingding

赞同来自:

go中线程的id获取为什么没有直接封装成一个函数,调用一下就可以了

要回复问题请先登录注册