天天看點

Go擷取目前協程資訊

func GetGid() (gid uint64) {
  b := make([]byte, 64)
  b = b[:runtime.Stack(b, false)]
  b = bytes.TrimPrefix(b, []byte("goroutine "))
  b = b[:bytes.IndexByte(b, ' ')]
  n, err := strconv.ParseUint(string(b), 10, 64)
  if err != nil {
    panic(err)
  }
  return n
}      
func getNumGoroutine() int{
  return runtime.NumGoroutine()
}