26 lines
549 B
Go
26 lines
549 B
Go
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())
|
|
}
|