package utils import ( "fmt" "os" "runtime" "strconv" "strings" ) func GetCurrentProcessID() string { return strconv.Itoa(os.Getpid()) } // GetCurrentGoroutineID 获取当前的协程ID func GetCurrentGoroutineID() string { buf := make([]byte, 128) buf = buf[:runtime.Stack(buf, false)] stackInfo := string(buf) return strings.TrimSpace(strings.Split(strings.Split(stackInfo, "[running]")[0], "goroutine")[1]) } func GetProcessAndGoroutineIDStr() string { return fmt.Sprintf("%s_%s", GetCurrentProcessID(), GetCurrentGoroutineID()) }