123456789101112131415161718192021222324252627282930313233343536373839 |
- package api
- import (
- "fmt"
- "sync"
- "time"
- "github.com/gin-gonic/gin"
- )
- func Printr(c *gin.Context, apictx *ApiSession) (interface{}, error) {
- c1 := make(chan int)
- var wg sync.WaitGroup
- for i := 0; i < 3; i++ {
- wg.Add(1)
- go work(&wg, c1, i)
- }
- go func() {
- wg.Wait()
- close(c1)
- }()
- for n := range c1 {
- fmt.Println(n)
- }
- return nil, nil
- }
- func work(wg *sync.WaitGroup, c1 chan<- int, n int) {
- if n == 1 {
- time.Sleep(1 * time.Second)
- }
- c1 <- n
- wg.Done()
- }
|