go生成唯一的随机数
需求在并发下生成不同的随机数,使用match/rand下的不满足需要
使用goole的uuid更好
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package main import ( "crypto/rand" "fmt" "math/big" "strconv" "sync" "time" "encoding/json" ) func main() { wg := sync.WaitGroup{} var lock sync.Mutex fmt.Println( "go start" , time.Now()) var arr = []string{} for i := 0; i < 300; i++ { wg.Add(1) go func () { n, _ := rand.Int(rand.Reader, big.NewInt(100000000)) lock.Lock() arr = append(arr, strconv.FormatInt(n.Int64()+time.Now().UnixNano(), 10)) lock.Unlock() wg.Done() }() } wg.Wait() fmt.Println(len(arr)) str, err := json.Marshal(arr) if err != nil { fmt.Println( "错误:" , err) } else { fmt.Println(string(str)) } //fmt.Println(arr) } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异