goRedisDLM/utils/os.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())
}