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  }