diff --git a/geg/os/groutine.go b/geg/os/grpool/grpool1.go similarity index 81% rename from geg/os/groutine.go rename to geg/os/grpool/grpool1.go index ebb2120a8..b6a29ea4e 100644 --- a/geg/os/groutine.go +++ b/geg/os/grpool/grpool1.go @@ -14,14 +14,12 @@ func job() { func main() { grpool.SetSize(10) for i := 0; i < 1000; i++ { - grpool.Add(func() { - job() - }) + grpool.Add(job) } gtime.SetInterval(2*time.Second, func() bool { fmt.Println("size:", grpool.Size()) fmt.Println("jobs:", grpool.Jobs()) return true }) - time.Sleep(5000*time.Second) + select {} } diff --git a/geg/os/grpool/grpool2.go b/geg/os/grpool/grpool2.go new file mode 100644 index 000000000..4d3c2d1d5 --- /dev/null +++ b/geg/os/grpool/grpool2.go @@ -0,0 +1,19 @@ +package main + +import ( + "fmt" + "sync" + "gitee.com/johng/gf/g/os/grpool" +) + +func main() { + wg := sync.WaitGroup{} + for i := 0; i < 10; i++ { + wg.Add(1) + grpool.Add(func() { + fmt.Println(i) + wg.Done() + }) + } + wg.Wait() +} diff --git a/geg/os/grpool/grpool3.go b/geg/os/grpool/grpool3.go new file mode 100644 index 000000000..67c9948a6 --- /dev/null +++ b/geg/os/grpool/grpool3.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" + "sync" +) + +func main() { + wg := sync.WaitGroup{} + for i := 0; i < 10; i++ { + wg.Add(1) + go func(v int){ + fmt.Println(v) + wg.Done() + }(i) + } + wg.Wait() +} diff --git a/geg/os/grpool/grpool4.go b/geg/os/grpool/grpool4.go new file mode 100644 index 000000000..02fa6cd20 --- /dev/null +++ b/geg/os/grpool/grpool4.go @@ -0,0 +1,20 @@ +package main + +import ( + "fmt" + "sync" + "gitee.com/johng/gf/g/os/grpool" +) + +func main() { + wg := sync.WaitGroup{} + for i := 0; i < 10; i++ { + wg.Add(1) + v := i + grpool.Add(func() { + fmt.Println(v) + wg.Done() + }) + } + wg.Wait() +}