github.com/gogf/gf@v1.16.9/.example/container/gqueue/gqueue2.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/gogf/gf/container/gqueue" 8 "github.com/gogf/gf/os/gtimer" 9 ) 10 11 func main() { 12 q := gqueue.New() 13 // 数据生产者,每隔1秒往队列写数据 14 gtimer.SetInterval(time.Second, func() { 15 for i := 0; i < 10; i++ { 16 q.Push(i) 17 } 18 }) 19 20 // 消费者,不停读取队列数据并输出到终端 21 for { 22 if v := q.Pop(); v != nil { 23 fmt.Println(" Pop:", v) 24 } else { 25 break 26 } 27 } 28 }