golang雪花id生成
前几天看到群里有一个兄弟说,他的雪花id使用for循环生成的过程偶尔会出现id重读的情况。 那么今天我们来看看他到底会不会重读。直接上操作步骤。
老规矩直接拉三方库
三方库地址:go get -u github.com/sony/sonyflake
直接上主函数代码。
package main
import (
"fmt"
"github.com/sony/sonyflake"
"time"
)
var flake *sonyflake.Sonyflake
func init() {
// 创建一个新的 sonyflake 实例
flake = sonyflake.NewSonyflake(sonyflake.Settings{})
}
func main() {
// 生成 100 个不重复的 ID
for i := 0; i < 100; i++ {
go func() {
id, err := flake.NextID()
if err != nil {
fmt.Printf("Failed to generate ID: %s\n", err)
} else {
fmt.Printf("Generated ID: %d\n", id)
}
}()
}
time.Sleep(10 * time.Second)
}