From 337a01d63d42a3caa0a72a5fc4ee20df6ae8e662 Mon Sep 17 00:00:00 2001 From: John Date: Wed, 17 Jan 2018 15:18:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0grpool=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- geg/os/{groutine.go => grpool/grpool1.go} | 6 ++---- geg/os/grpool/grpool2.go | 19 +++++++++++++++++++ geg/os/grpool/grpool3.go | 18 ++++++++++++++++++ geg/os/grpool/grpool4.go | 20 ++++++++++++++++++++ 4 files changed, 59 insertions(+), 4 deletions(-) rename geg/os/{groutine.go => grpool/grpool1.go} (81%) create mode 100644 geg/os/grpool/grpool2.go create mode 100644 geg/os/grpool/grpool3.go create mode 100644 geg/os/grpool/grpool4.go 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() +}